小编Lit*_*ium的帖子

有什么理由同时拥有一个包含列的索引和一个不包含列的索引?

我正在查看在过去几年中(在许多不同的开发人员的领导下)取得重大发展的数据库上的一些运行缓慢的查询。
最常用的表之一有几个索引,它们具有相同的索引列,但其中一个包含列,另一个不包含。

例如:
一个索引:

 CREATE NONCLUSTERED INDEX [IDX_tblTable_IndexedColumnId_Inc] ON [dbo].[tblTable]
 (
[IndexedColumnId] ASC
 )
Run Code Online (Sandbox Code Playgroud)

然后另一个:

CREATE NONCLUSTERED INDEX [IDX_tblTable_IndexedColumnId_Inc] ON [dbo].[tblTable]
(
[IndexedColumnId] ASC
)
INCLUDE (   [Field1Id],
[Field2],
[Field3],
[Field4],
[Field5],
[Field6]) 
Run Code Online (Sandbox Code Playgroud)

我认为这只是一个疏忽,只是使用磁盘空间和额外的开销来获得没有包含列的索引(已知需要包含列)。

在同一列上有两个索引有什么好处,一个包含列,另一个没有?

index sql-server nonclustered-index

7
推荐指数
1
解决办法
1247
查看次数

标签 统计

index ×1

nonclustered-index ×1

sql-server ×1