Я занимаюсь оптимизацией индексов в БД SQL Server 2008, над которой я работаю. Прямо сейчас я на «центральном» столе.
Эта таблица объединена в 7 столбцов. Он также имеет первичный ключ (конечно), а также метку даты, которую я проиндексировал в порядке DESC. Я считаю, что из-за характера объединений требуется 6 индексов (некоторые объединения относятся к таблицам со сверхнизким количеством элементов или не будут запрошены).
Однако, эта таблица сильно записана. Производительность будет низкой с 6 индексами (и 1 - это индекс с 2 столбцами). Запросы можно запускать для большинства соединенных таблиц, поэтому я не вижу, как можно отбросить какие-либо индексы.
Кто-нибудь знает лучшую практику определения баланса между индексами?
Обновление:
Вот интересующие вас столбцы в таблице:
MentionID int primary key
ParentID int indexed
ProfileID int indexed
SourceCategoryID tinyint indexed with next column
SourceID int
RoleplayerID int indexed
DateStamp smalldatetime indexed DESC
Subject nvarchar(1000)
KeyMessage nvarchar(1000)
SentimentID tinyint unindexed: low cardinality
ScopeID tinyint unindexed: low cardinality