为什么我新添加的索引显示为“统计数据”?

为什么我新添加的索引显示为“统计数据”?

我们正在尝试调整我们的 SQL Server 2005 数据库,因为我们的表上确实没有索引,而且我们的 CPU 使用率开始达到最大值 100%。

我们已经运行了 SQL Server 事件探查器 3 个小时,这涵盖了我们的 Web 前端使用率最高的时间。

在我们将其输入数据库引擎优化顾问后,它针对索引和统计信息提出了许多建议。以下是其中一个例子:

CREATE NONCLUSTERED INDEX [_dta_index_ChangeLog_9_245575913__K5_K2_K3_K4] ON [dbo].[ChangeLog] 
(
    [ChangePrimaryKey] ASC,
    [TableID] ASC,
    [ChangeDate] ASC,
    [ChangeType] ASC
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
GO

..但失败了,因为已经有“名为‘_dta_index_ChangeLog_9_245575913__K5_K2_K3_K4’的索引或统计信息”,我可以在 SQL Server Management Studio 中该表的“统计信息”部分下看到它。我在“索引”下唯一拥有的是主键上的聚集索引。

为什么将其添加为统计数据而不是指数?

答案1

统计信息是一种非聚集索引,由 SQL Server 根据数据库使用情况自动创建,它们共享相同的命名空间(您可以在中看到一些索引元数据sys.indexes)。

只需尝试使用更有意义的名称创建索引IDX_ChangeLog,它就应该可以正常工作。

相关内容