【发布时间】:2013-09-15 08:21:12
【问题描述】:
根据建议索引必须是最有选择性的以提高性能。作为一般准则,我们应该在经常被查询少于表的 15% 行的表上创建索引。索引列/列中不同值的数量与表中记录数的比率表示一个索引。
具有良好选择性的示例 一张有 100'000 条记录的表,其中一个索引列有 88000 个不同的值,则该索引的选择性为 88'000 / 10'0000 = 0.88。
现在说到重点。我有一张有 1,80,000 条记录的表。 搜索条件中经常使用的字段是 (1) 使用用户名搜索记录。 字段类型:-> 非空,nvarchar(32)。 唯一记录为 627 (2) 使用Active_date 搜索记录。 字段类型:-> DateTime,Null。 唯一记录是 85627 。 (3) 使用 Current_state 搜索记录 字段类型:-> 非 Null,nvarchar(32)。 唯一记录只有 2 条,分别是“Pending”和“Closed”。
目前所有上述字段都已编入索引。就选择性而言,情况 (1) 和 (3) 不是最有选择性的,我应该如何处理它们以提高性能?
提前致谢,山姆
【问题讨论】:
标签: sql sql-server indexing query-performance