我是DB2的新手,我想用两个日期列的索引来支持我的查询:
WHERE (t0.start_date <= ? AND (t0.till_date > ? OR t0.till_date IS
NULL))
是否有一种放置索引的最佳方式,或者只是索引till_date?
第二个问题是我必须手动将索引放在外键列上吗?
最好的问候, 米
答案 0 :(得分:2)
在多列索引中,最好将具有较高基数(大多数不同值)的列放在开头。在您的示例中,假设start_date
永远不为空且till_date
可以为null,那么最好在start_date, till_date
上构建索引。
DB2不会自动为参照完整性约束创建索引。它需要父列上的唯一或主键约束,并且这些约束会自动创建索引,但您必须在子表上手动创建相应的索引。