В настоящее время я смотрю на проблему с производительностью широко используемой системы .NET CMS, и у меня есть конкретная таблица с приблизительно 5 000 000 записей в ней, которая является основной причиной этих проблем, просто запрос содержимого этой таблицы занимает до2 минуты в локальной среде разработки.
Глядя на схему для таблицы, я заметил, что существует только один уникальный некластеризованный индекс и нет кластеризованного индекса.
Таблица и индекс определены следующим образом
CREATE TABLE [dbo].[MyTable](
[Id] [uniqueidentifier] NOT NULL,
[ItemId] [uniqueidentifier] NOT NULL,
[Language] [nvarchar](50) NOT NULL,
[FieldId] [uniqueidentifier] NOT NULL,
[Value] [nvarchar](max) NOT NULL,
[Created] [datetime] NOT NULL,
[Updated] [datetime] NOT NULL
)
CREATE UNIQUE NONCLUSTERED INDEX [IX_Unique] ON [dbo].[MyTable]
(
[ItemId] ASC,
[Language] ASC,
[FieldId] ASC
)
Есть ли у кого-нибудь какие-либо предложения относительно индексов в этой таблице, чтобы повысить производительность запросов и, в частности, является ли вообще хорошей практикой всегда определять кластеризованноеуказатель на стол?
Спасибо