Мы пытаемся настроить нашу базу данных SQL Server 2005, так как у нас, откровенно говоря, нет индексации наших таблиц, а загрузка ЦП достигает 100%.
Мы запускали профилировщик SQL Server в течение трехчасового периода, который покрывает время, когда мы наиболее часто используем наш веб-интерфейс.
После того, как мы загрузили это в помощник по настройке ядра СУБД, он сделал ряд предложений по индексам и статистике. Вот пример одного из них:
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. Единственное, что у меня есть в разделе «Индексы» - это кластерный индекс по первичному ключу.
Почему он был добавлен как статистика, а не как индекс?
Статистика - это своего рода некластеризованные индексы, которые автоматически создаются SQL Server на основе использования базы данных, и они используют одно и то же пространство имен (вы можете увидеть некоторые метаданные индекса в sys.indexes
).
Просто попробуйте создать индекс с более значимым именем, например IDX_ChangeLog
, он должен работать нормально.