Перейти к содержимому
Последнее обновление

ALTER STATS

Описание​

Ручное изменение статистики указанного столбца в указанной таблице. Подробности приведены в главе «Статистика».

Синтаксис​

ALTER TABLE <table_name>
[ INDEX <index_name> ]
MODIFY COLUMN <column_name>
SET STATS (<column_stats>)

Здесь:

column_stats
: -- column stats value
("key1" = "value1", "key2" = "value2" [...])

Обязательные параметры

<table_name>

Задаёт идентификатор (то есть имя) таблицы.

<column_name>

Задаёт идентификатор (то есть имя) столбца. Если <index_name> не указан, это имя столбца базовой таблицы.

<column_stats>

Значения статистики, которые необходимо установить, в формате key = value. И ключ, и значение должны быть заключены в кавычки, а пары ключ-значение разделяются запятыми. Можно задать следующие статистические показатели:

row_count, общее количество строк

ndv, кардинальность столбца

num_nulls, количество значений NULL в столбце

data_size, общий размер столбца

min_value, минимальное значение столбца

max_value, максимальное значение столбца

Параметр row_count обязателен, остальные атрибуты необязательны. Если атрибут не задан, соответствующее значение статистики для этого столбца будет пустым.

Необязательные параметры

<index_name>

Идентификатор (то есть имя) синхронного материализованного представления (подробности приведены в главе «Синхронные материализованные представления»). Таблица может иметь от 0 до нескольких материализованных представлений. Чтобы задать статистику столбца материализованного представления, необходимо указать имя этого представления с помощью <index_name>. Если параметр не указан, задаются свойства столбца базовой таблицы.

Требования к правам доступа

Пользователь, выполняющий эту команду SQL, должен иметь как минимум следующие привилегии:

ПривилегияОбъектПримечания
ALTER_PRIVТаблица

Примечания по использованию

После того как пользователь вручную задаст статистику таблицы, она перестанет участвовать в автоматическом сборе статистики (подробности приведены в главе «Автоматический сбор статистики»), чтобы избежать перезаписи статистики, заданной пользователем. Если заданная статистика больше не нужна, её можно удалить с помощью оператора drop stats. Это позволит снова включить автоматический сбор статистики для таблицы.

Примеры

  • Задать статистику столбца p_partkey таблицы part (столбец базовой таблицы, поскольку index_name не указан).

    alter 
    table part
    modify column p_partkey
    set stats ('row_count'='2.0E7', 'ndv'='2.0252576E7', 'num_nulls'='0.0', 'data_size'='8.0E7', 'min_value'='1', 'max_value'='20000000');
  • Задать статистику столбца col1 материализованного представления index1 таблицы part (столбец материализованного представления, поскольку index_name указан).

    alter 
    table part index index1
    modify column col1
    set stats ('row_count'='2.0E7', 'ndv'='2.0252576E7', 'num_nulls'='0.0', 'data_size'='8.0E7', 'min_value'='1', 'max_value'='20000000');