|
2
|
| Andrew not the Saint · 技术社区 · 17 年前 |
|
|
1
2
换句话说,如果优化器认为它将从表A中获得1M行,从表B中获得1000行,它很可能会选择全扫描+排序合并或哈希连接;然而,如果它实际运行查询时,只从表A中获取1行,那么索引范围扫描可能会更好。 我首先会查看一些性能不佳的查询,分析谓词的选择性,确定优化器是否对每个表的行数做出了合理的估计。 编辑: 你提到基数估计是不正确的。这是你问题的根源;哈希连接和排序的成本可能相当合理。在某些情况下,优化器可能使用了错误的估计,因为它不知道数据有多相关。某些列上的直方图可能会有所帮助(如果你还没有得到它们),在某些情况下,你可以创建基于函数的索引并收集隐藏列的统计数据,为优化器提供更好的数据。
|
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 1 年前 |
|
Zegarek · Postgresql递归查询未提供预期结果 1 年前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |