【发布时间】:2010-05-17 09:19:26
【问题描述】:
我正在优化我的一些查询,我有一个查询指出: 从 SC 中选择 * 其中 c_id ="+c_id" ** SC** 的架构如下所示:
SC ( c_id int not null, date_start date not null, date_stop date not null, r_t_id int not null, nt int, t_p decimal, PRIMARY KEY (c_id, r_t_id, date_start, date_stop));
我对如何创建索引的直接出价是按以下顺序覆盖索引:
INDEX(c_id, date_start, date_stop, nt, r_t_id, t_p)
我基于此订单的原因:
WHERE 子句从 c_id 中选择,从而使其成为第一个排序顺序。 接下来,date_start 和 date_stop 指定一个排序的“范围”,在这些参数中定义 接下来,nt 因为它会选择 nt 接下来是 r_t_id,因为它是我的 r_t 表的特定类型的 ID 最后是 t_p,因为它只是一个信息。
当它是一个 SELECT ALL 语句时,我不知道是否有必要以特定方式对其进行排序。 我应该说,SC 不是最大的表。我可以说它包含多少行,但估计可能在
接下来要补充的是,SC在不同的查询中,将数据插入到SC中,我知道有插入的表上的索引可以成本效益低,但我能否以某种方式创造一种黄金中间方式来提高这种性能。
不知道它是否有所不同,但我使用的是 IBM DB2 9.7 版数据库
真诚的
梅斯蒂卡
【问题讨论】:
标签: database db2 indexing query-optimization