【发布时间】:2014-02-12 03:10:08
【问题描述】:
我有一个包含超过 100 万条记录的表。表上没有定义键。 但是,我们确实定义了聚集索引和非聚集索引。
我想知道当我执行SELECT 查询并包含我们在WHERE 子句中创建索引的列时,是否真的会提高性能?
是否必须拥有主键/唯一键才能利用索引的真正优势?
表格详情:
- 260 列
- 没有钥匙
- 未定义标识列。
- 未定义 rowguidcol 列。
- 1 个聚集索引和 1 个非聚集索引
查询:
select *
from employee(nolock)
where employeeID = '15' and employeeType = 'FT'
【问题讨论】:
-
请提供表格布局和您尝试运行的查询示例。
-
260 列 无键 未定义标识列。未定义 rowguidcol 列。 1 个聚集索引和 1 个非聚集索引 select * from employee(nolock) where employeeID = '15' and employeeType = 'FT'
-
聚集/非聚集索引中使用的列和数据类型是什么?
-
使用
SELECT *时,您总是面临查询优化器将只使用表扫描/聚集索引扫描而不是执行大量搜索和键查找的风险。如果您要使用SELECT col1, col2, ..., colN,那么您有可能创建一个覆盖索引,其中包含满足此查询所需的所有列,从而显着
标签: sql sql-server indexing primary-key