Oracle执行计划——直方图的使用
Oracle执行计划——直方图的使用
1. 建立一张倾斜表
object_type只有两个值, 一个500行左右, 剩下50000行左右.
2. 直方图的桶数量为1的情况
当Object_type=INDEX时, 明显执行计划中ROW是有问题的, 而且全表扫描也是有问题.
3. 直方图的桶数量为254的情况
这时, ROWS=600, 这个值靠谱多了. 执行计划也变也了 索引范围扫描了.
通过这个例子也很好理解: 直方图是高度均衡, 不是宽度均衡.
object_type只有两个值, 一个500行左右, 剩下50000行左右.
2. 直方图的桶数量为1的情况
当Object_type=INDEX时, 明显执行计划中ROW是有问题的, 而且全表扫描也是有问题.
3. 直方图的桶数量为254的情况
这时, ROWS=600, 这个值靠谱多了. 执行计划也变也了 索引范围扫描了.
通过这个例子也很好理解: 直方图是高度均衡, 不是宽度均衡.