Ситуація
- Склад даних на Sql Server 2008 Enterprise
- 36+ мільйонів рядів (без запитання) із 60+ стовпцями
- 750k додається щомісяця
- Не визначено первинного ключа (я його зараз визначив)
- Без стиснення
Що я думаю робити (у такому порядку)
- Додати стиснення рівня сторінки
- Додайте ПК
- Додайте ряд некластеризованих індексів
- Робіть це якомога швидше
Питання
- В кінцевому підсумку: чи потрібно додати першу ПК або стиснення сторінки? (Це важливо?)
- Якщо я додати спершу стиснення до таблиці, чи будуть індекси успадковувати параметри стиснення рівня таблиці? Відповідь на це питання "Ні, стискання не успадковується", знайдене тут на dba.stackexchange
До чого я схиляюся на даний момент
-- Add page level compression
alter table dbo.TableName
rebuild with (data_compression = page)
;
go
-- Add primary key
alter table dbo.TableName
add constraint PK_TableName
primary key clustered (<Columns>)
;
go
-- Add NC_IXs here
...
...
Я заглянув сюди (документація по створенню ПК) та тут (документація ALTER TABLE) , але не можу побачити нічого остаточного щодо того, є чи ні індекси успадковують настройки стиснення таблиці. Відповідь на це питання "Ні, стискання не успадковується", знайдене тут на dba.stackexchange