我的理解是空值在 DB2 中是不可索引的,因此假设我们有一个巨大的表 (Sales),其中的日期列 (sold_on) 通常是一个日期,但偶尔(10% 的时间)为空。
此外,让我们假设它是一个我们无法更改的遗留应用程序,因此这些空值将保留在那里并且意味着某些东西(假设是返回的销售额)。
我们可以通过在 sold_on 和 total 列上放置索引来快速进行以下查询
Select * from Sales
where
Sales.sold_on between date1 and date2
and Sales.total = 9.99
但是索引不会使这个查询更快:
Select * from Sales
where
Sales.sold_on is null
and Sales.total = 9.99
因为索引是在值上完成的。
我可以索引空值吗?也许通过更改索引类型?索引指标列?