Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Кластеризованный индекс. Практический совет.  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
Имеется таблица объемом 120 мб из примерно 900 тыс строк
CREATE TABLE [dbo].[tbDetail](
	[ID] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY,
        ...
	[IDtbMaster] [int] NOT NULL

IDtbMaster - внешний ключ на поле ID таблицы tbMaster, в IDtbMaster примерно 10 тыс. различных значений, по нему построен индекс IX_IDtbMaster, density = 0.011. В основном в запросах используется join tbMaster и tbDetail. Какой индекс лучше сделать кластеризованным - по первичному ключу PK_tbDetail, или IX_IDtbMaster?
10 июл 12, 14:19    [12844792]     Ответить | Цитировать Сообщить модератору
 Re: Кластеризованный индекс. Практический совет.  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
В 90% случаев делают по первичному ключу.
10 июл 12, 14:51    [12845079]     Ответить | Цитировать Сообщить модератору
 Re: Кластеризованный индекс. Практический совет.  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 467
А аргументы?
Кластеризованный индекс по IX_IDtbMaster способствовал бы использованию MERGE JOIN при объединении этих таблиц
но замедлял бы операции вставки/удаления/изменения записей, по сравнению с PK_tbDetail.
Все ли аргументы я озвучил и выбор нужно делать лишь на основе того, что происходит чаще: join-запросы или модификация данных в tbDetail?
10 июл 12, 15:03    [12845172]     Ответить | Цитировать Сообщить модератору
 Re: Кластеризованный индекс. Практический совет.  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Шамиль Фаридович
выбор нужно делать лишь на основе того, что происходит чаще: join-запросы или модификация данных в tbDetail?

Ага.
10 июл 12, 15:06    [12845197]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить