Первичный ключ является автоматически индексом?

Если я выполняю Профилировщика, то это предлагает много индексов как этот

CREATE CLUSTERED INDEX [_dta_index_Users_c_9_292912115__K1] ON [dbo].[Users] 
(
 [UserId] ASC
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, 
ONLINE = OFF) ON [PRIMARY]

UserId является первичным ключом таблицы Users. Этот индекс лучше, чем тот уже в таблице:

ALTER TABLE [dbo].[Users] ADD  CONSTRAINT [PK_Users] PRIMARY KEY NONCLUSTERED 
(
 [UserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, 
IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, 
ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
16
задан gbn 14 March 2010 в 09:40
поделиться

4 ответа

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

Вы указали некластеризованный PK, поэтому профилировщик предлагает кластеризованный индекс ...

Примечание: таблица без кластерного индекса называется «кучей», потому что это куча неструктурированных данных ...

6
ответ дан 30 November 2019 в 17:15
поделиться

Да, первичный ключ всегда является индексом.

Если у вас нет другого кластерного индекса для таблицы, все просто: кластерный индекс ускоряет работу таблицы для каждой операции. ДА! Оно делает. Дополнительную информацию см. В превосходной работе Ким Триппа . Продолжение дебатов по кластерному индексу .

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

24
ответ дан 30 November 2019 в 17:15
поделиться

Это лучше, потому что оно сгруппировано.

1
ответ дан 30 November 2019 в 17:15
поделиться

По сути, это предложение сделать первичный ключ кластеризованным индексом, а не некластеризованным. В большинстве случаев это было бы хорошо.

2
ответ дан 30 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: