#sql-server
#sql-server
Вопрос:
Учитывая, что индекс первичного ключа — это то, как физически расположена таблица, какой эффект, если таковой имеется, можно получить, поместив на него С помощью DATA_COMPRESSION ?
CREATE TABLE [Search].[Property]
(
[PropertyId] [BIGINT]
NOT NULL
CONSTRAINT PK_Property PRIMARY KEY WITH (DATA_COMPRESSION = PAGE),
[Parcel] [GEOMETRY] NULL
CHECK ([Parcel] IS NULL
OR ([Parcel].STSrid = 3857
AND [Parcel].STIsValid() = 1
)),
[StreetNumber] [VARCHAR](20) NULL,
[StreetDir] [VARCHAR](2) NULL,
[StreetName] [VARCHAR](50) NULL,
[StreetType] [VARCHAR](4) NULL,
[StreetPostDir] [VARCHAR](2) NULL
)
WITH (
DATA_COMPRESSION = PAGE);
GO
Ответ №1:
Это имеет тот же эффект, что и сжатие таблицы, например :
ALTER TABLE [Search].[Property]
REBUILD WITH (DATA_COMPRESSION = PAGE);
Подробнее о сжатии индексов и таблиц см. В MSDN или MSDN для получения подробной информации о том, как сжатие страницы реализовано в SQL Server.
Ответ №2:
AFAIK, на самом деле это зависит; Когда вы включаете сжатие для первичного ключа (как в вашем сообщении). Если кластеризованный индекс создается на PK (который используется по умолчанию), то он будет действовать как сжатие на уровне таблицы (т.Е. Сжатие кластеризованного индекса = сжатие таблицы); тогда как, если это некластеризованный индекс, тогда будет иметь место только сжатие индекса.
[PropertyId] [BIGINT]
NOT NULL
CONSTRAINT PK_Property PRIMARY KEY WITH (DATA_COMPRESSION = PAGE)