0

我正在研究 IBM DB2,我有一个关于访问类型的问题。

我不确定在查询中决定 IN-list access 、 Index Scan 、 TS scan 的方式。

例如,我们有

SELECT * FROM T
 WHERE C1=1 AND C2 IN (1,2,3)
    AND C3>0 AND C4<100;

然后,它将是 IN 列表访问,因为查询包含 IN 语句。但是,如果有索引,C1 和 C3 或可能是索引扫描。为什么我们必须说这个查询是“IN 列表访问”?

你能给我一个索引扫描和TS扫描的例子吗?

我真的不明白这部分

4

1 回答 1

1

判断您获得哪种访问路径的唯一方法是从EXPLAIN PLAN. 您无法查看查询(不了解可用索引、列基数等)并确定优化器会做什么。

DB2 的优化器是基于成本的,它将选择它计算出的访问计划在 CPU、磁盘访问和内存方面是最有效的。使用EXPLAIN PLAN或 Visual Explain 工具将允许您查看优化器选择的内容。

于 2012-11-18T23:57:11.620 回答