Примай-ключ некластеризованный (составной ключ) и кластеризованный индекс на разные столбцы в одной таблице? - PullRequest
0 голосов
/ 02 марта 2020

Я использую SQL Server 2012, и для одной из таблиц я вижу, что он создал первичный ключ некластеризованный (составной ключ) и кластеризованный индекс для другого столбца? Может ли кто-нибудь помочь мне понять, что произойдет в этой ситуации?

  1. Будет ли это снижать производительность операций DML? Если да, то как это измерить?
  2. Будет ли это вызывать блокировки / блокировки / взаимоблокировки для этой таблицы при выполнении операции DML во время параллелизма?

Примечание: в этой таблице огромное количество записей ~ 10 миллионов

1 Ответ

1 голос
/ 02 марта 2020

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

...