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');