我正在研究IBM DB2,我得到了一个关于访问类型的问题。
我不确定在查询中决定IN-list访问,索引扫描,TS扫描的方法。
例如,我们有
SELECT * FROM T
WHERE C1=1 AND C2 IN (1,2,3)
AND C3>0 AND C4<100;
然后,它将是IN列表访问,因为查询包含IN语句。 但是,C1和C3或者如果有索引则可能是索引扫描。 为什么我们不得不说这个查询是“IN list access?”
你能给我一个索引扫描和TS扫描的例子吗?
我真的不明白这部分
答案 0 :(得分:1)
告诉您获得哪种访问路径的唯一方法是从EXPLAIN PLAN
获取输出。您无法查看查询(不了解可用索引,列基数等)并确定优化程序将执行的操作。
DB2的优化器是基于成本的,并且将选择它计算的访问计划在CPU,磁盘访问和内存方面最有效。使用EXPLAIN PLAN
或Visual Explain工具可以查看优化程序选择的内容。