0

If I have a multiple column index(a,b,c) and one separate index d then my query is using b,a,c,d order whether both the index will be chosen? Whether index will be choosen or not for this query?

4

3 回答 3

0

在 DB2 命令行中,试试这个:

db2 => explain plan for ...insert-query-here...

在结果中,您将看到何时使用索引以及何时 DB2 将使用全表扫描。

于 2009-02-25T12:04:07.513 回答
0

如果将其更改为 a, b, c, d,则将使用 (a, b, c) 索引。
如果将其更改为 d、b、a、c(或以 d 开头的任何内容),则将选择 (d) 索引。
基本上,以与您要使用的索引相同的顺序使用列。

于 2009-02-25T12:06:49.347 回答
0

基于成本的优化器(例如 DB2 的)将使用表和索引对象的统计信息来确定 (A,B,C) 索引还是 (D) 索引更适合给定查询。索引基数(索引中唯一值的数量)是 RUNSTATS 命令收集的几个数据统计信息之一,可帮助优化器估计每个可能访问路径的相对 I/O 和 CPU 成本。Aaron Digulla 的回答中提到的解释命令以及 db2expln 工具可以帮助您了解将选择哪个索引。

于 2009-06-18T04:18:18.867 回答