繁体   English   中英

SQL Server-索引选项

[英]SQL Server - options for indexing

我的数据库中有大约200多个表。 每个表都有两列IsDeletedIsActive ,它们的类型为BIT用于逻辑删除。 在所有查询中,我检查是否未删除一行IsDeleted = 0IsActive = 1

我的问题是:如何创建索引以获得最佳性能?

这是添加过滤索引的主要方案之一。 在这种情况下,筛选索引允许您创建不包括已删除或非活动行的索引,从而使索引更小且查询更快。

替代方法是将状态列作为键列添加到所有索引,或者使用分区或单独的存档表。 而且它们都不如过滤索引那么简单。

当索引具有高度选择性时,它们很有用。 将索引添加到数据库时,会产生额外的开销。 因此,如果您有一百万行表,而索引列只能具有两个值之一(IsActive或IsDeleted),那么您也可能会忘记为该列建立索引,因为索引搜索和表扫描之间的差异很小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM