zaf*_*s.m 5 t-sql indexing nullable sql-server-2008-r2 non-clustered-index
我正在使用SQL Server 2008 R2,我想在非唯一的可空字段上添加非聚集索引.我的索引还会包含一个列,以避免访问我的聚簇索引:
CREATE INDEX IX_My_Index
ON MyTable (myBasicField)
INCLUDE (myIncludedField);
Run Code Online (Sandbox Code Playgroud)
在实际的数据中myBasicField会有很多,NULLs我想知道是否有一种方法可以通过不扫描这些来提高性能NULLs,或者防止将NULL值存储在我的索引上.
提前致谢.
使用SQL Server 2008及更高版本,您可以使用筛选索引.在这里查看介绍博客文章 - 语法将是:
CREATE INDEX IX_My_Index
ON MyTable (myBasicField)
INCLUDE (myIncludedField)
WHERE myBasicField IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
任何包含相同WHERE子句的查询都可以利用这一点,并且索引将小得多,因此如果排除这样的NULL值,则性能会更好.
| 归档时间: |
|
| 查看次数: |
2314 次 |
| 最近记录: |