Возможное изменение производительности, если столбец NOT NULL UNIQUE CLUSTERED INDEX будет первичным ключом - PullRequest
0 голосов
/ 02 мая 2018

Если столбец объявлен как NOT NULL UNIQUE CLUSTERED INDEX, будет ли PRIMARY KEY вносить какие-либо реальные изменения в производительность или что-то еще?

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

PRIMARY KEY не допускает нулевое значение и должно быть уникальным, ограничения NOT NULL UNIQUE также могут применять к столбцу аналогичное правило, как PRIMARY KEY, однако ваша таблица может иметь только один первичный ключ, но может иметь несколько NOT NULL UNIQUE Колонны.

и NOT NULL UNIQUE CLUSTERED INDEX и PRIMARY KEY, оба будут сохранены, упорядочены и структурированы, как в КЛАСТЕРНОМ ИНДЕКСЕ, поэтому в оперативной основе для выбора, вставки, обновления или удаления не должно быть никаких различий

единственная разница может заключаться в самих метаданных.

0 голосов
/ 02 мая 2018

Это не должно иметь никакого эффекта. С точностью до нескольких ручных волн 1 , PRIMARY KEY - это то же самое, что и UNIQUE KEY, с дополнительным условием, что все столбцы должны быть ненулевыми. Таким образом, оформление этого столбца в качестве ПЕРВИЧНОГО КЛЮЧА не должно приводить к каким-либо изменениям в физических структурах данных 2 , которые реализуют таблицу.

CLUSTERED - это совершенно отдельное понятие - иногда его сопоставляют с PRIMARY KEY. Если в таблице нет CLUSTERED INDEX и добавлен PRIMARY KEY, то по умолчанию это также будет определено как CLUSTERED INDEX. Но это поведение может быть отменено, если это необходимо, и на практике эти два фактора не связаны друг с другом.


1 На самом деле я не могу думать о каких-либо существенных различиях на данный момент, но, надеюсь, это просто для того, чтобы избежать придирки.

2 Кластерный индекс и любые некластеризованные индексы и статистика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...