我很好奇它使用哪种类型的优化器,这样我就可以优化我的数据库和查询。
我知道基于成本的设计是为了确定执行SQL语句的最有效的方法,但如果没有关于被访问数据的良好的、最新的统计信息,它就不能做到这一点。使用基于成本的方法,优化器因子是关于被访问的特定模式对象(表、集群或索引)的内容的统计信息。
基于规则的优化器是一种没有统计信息的方法,但这种方法不如基于成本的方法智能。使用基于规则的方法,优化器根据一组关于哪些类型的操作通常比其他类型执行得更快的规则来选择执行计划。
我相信这是基于成本的,但我不完全确定。谁能给我提供更多的信息,为什么它可能是一个或另一个?谢谢!
发布于 2019-03-26 04:42:40
在BigQuery中没有节省成本的自动规则。最好的方法是遵循BigQuery best practices: Controlling costs
请看下面的一些规则,我觉得它们很有用:
规则1
避免SELECT *
最佳实践:仅查询所需的列。
规则2
使用预览选项的
示例数据
最佳实践:不要运行查询来浏览或预览表数据。
规则3
在运行查询之前对其进行定价
最佳实践:在运行查询之前,预览它们以估计成本。
规则4
通过限制计费字节数来限制查询成本
最佳实践:使用最大字节计费设置来限制查询开销。
规则5
按日期划分的
分区数据
最佳实践:按日期对表进行分区。
https://stackoverflow.com/questions/55345796
复制相似问题