Кластеризованные / некластеризованные для несоставных ключей

Если в таблице есть несоставной ключ, имеет ли смысл установить его как кластеризованный или некластеризованный? Например, предполагая следующую таблицу:

CREATE TABLE [dbo].[Logins]
(
     [Customer_Id] UNIQUEIDENTIFIER ROWGUIDCOL PRIMARY KEY REFERENCES Customers(Customer_Id) ON DELETE CASCADE,
     [Email] NVARCHAR(50) NOT NULL UNIQUE NONCLUSTERED,
     [Password] NVARCHAR(64) NOT NULL
)

Поскольку Customer_Idиспользуется последовательный уникальный идентификатор, то нет причин делать любой другой ключ кластеризованным. Но с моей точки зрения это было бы полезно, если другой ключ является составным ключом, например, таким как CONSTRAINT [Table_UK] UNIQUE NONCLUSTERED (Email, OrderId).

Тем не менее, я не уверен, что несоставной ключ, как я представил, может также выиграть от некластеризации для сохранения производительности базы данных (сохранение проблемы сортировки и т. д., Поскольку последовательный ключ по своей сути сортируется)

1 ответ

  1. В таблице может быть только один кластеризованный индекс, поэтому все остальные индексы в большинстве случаев некластеризованные, но никогда не кластеризованные. Посмотреть https://msdn.microsoft.com/en-us/library/ms190457.aspx для получения дополнительной информации.