where 子句中的部分索引
SQL Server 中的 filtered index 允许我们针对部分行建索引。
1 | SELECT message |
以上是一个在队列系统中常用的 query,已经处理的消息很少需要用到。
1 | CREATE INDEX messages_todo |
可以通过以上方式建立部分索引。索引只包含满足 where 条件的行,因为 PROCESSED 字段总是’N’,只需要为 RECEIVER 字段建索引就足够了,大大节省了开销。
SQL Server 对部分索引的限制比较严格,不允许使用 function 跟 OR 运算符。