【发布时间】:2011-08-06 02:41:10
【问题描述】:
考虑一个表,其中包含一个位列,指示对象是处于活动状态还是处于非活动状态,其中大多数项目处于非活动状态(关闭)。
我的理解是,由于此列 (2) 的不同值数量有限,SQL 引擎发现执行表扫描以查找打开的项目比尝试对位列进行索引更有效。
SQL 2008 具有允许对索引进行筛选的新功能。在不了解它的内部情况的情况下,我会假设索引仅在满足过滤条件时才包含对记录的引用,并且这种方法将提供一种有效的方法来检索所有活动记录,而不必诉诸拆分活动记录到单独的表或分区中。
我曾经将打开记录记录的主键放入我用来识别活动记录的表中,然后将主表连接到这个“活动列表”表以仅返回活动记录。
在这种情况下,是否有任何理由不适合为此目的使用过滤索引?
【问题讨论】: