50.51. pg_statistic#
50.51. pg_statistic
#
Каталог pg_statistic
хранит статистические данные о содержимом базы данных. Записи создаются с помощью ANALYZE
и затем используются планировщиком запросов. Обратите внимание, что все статистические данные по своей природе являются приблизительными, даже при условии их актуальности.
Обычно есть одна запись, с stainherit
= false
, для каждого столбца таблицы, который был проанализирован. Если у таблицы есть наследующие дети или секции, также создается вторая запись с stainherit
= true
. Эта строка представляет статистику столбца по дереву наследования, то есть статистику для данных, которые вы бы видели с помощью SELECT
, тогда как строка с column
FROM table
*stainherit
= false
представляет результаты SELECT
.
column
FROM ONLY table
pg_statistic
также хранит статистические данные о значениях выражений индекса. Они описываются так, как если бы это были фактические столбцы данных; в частности, starelid
ссылается на индекс. Однако, для обычного не-выражения столбца индекса не делается записи, так как она была бы избыточной с записью для столбца таблицы, на котором он основан. В настоящее время, записи для выражений индекса всегда имеют stainherit
= false
.
Поскольку различные виды статистики могут быть применимы для разных видов данных, pg_statistic
разработана таким образом, чтобы не предполагать слишком много о том, какую статистику она хранит. Только крайне общие статистические данные (например, наличие NULL) имеют отдельные столбцы в pg_statistic
. Все остальное хранится в “слотах”, которые представляют собой группы связанных столбцов, содержимое которых идентифицируется кодовым номером в одном из столбцов слота. Дополнительную информацию см. в src/include/catalog/pg_statistic.h
.
pg_statistic
не должно быть доступным для чтения общественностью, так как даже статистическая информация о содержимом таблицы может считаться конфиденциальной. (Пример: минимальное и максимальное значения столбца с зарплатой могут быть довольно интересными). pg_stats
- это общедоступное представление pg_statistic
, которое предоставляет информацию только о тех таблицах, которые доступны текущему пользователю.
Таблица 50.51. pg_statistic
Столбцы
Тип столбца Описание |
---|
Таблица или индекс, к которым относится описываемый столбец |
Номер описываемого столбца |
Если значение true, статистика включает значения из дочерних таблиц, а не только значения из указанного отношения |
Доля записей столбца, которые являются пустыми |
Средняя ширина хранения, в байтах, ненулевых записей |
Количество различных ненулевых значений в столбце.
Значение больше нуля представляет собой фактическое количество различных значений.
Значение меньше нуля является отрицательным множителем для количества строк в таблице; например, столбец, в котором около 80% значений являются ненулевыми и каждое ненулевое значение в среднем появляется примерно дважды, может быть представлено как |
Кодовый номер, указывающий тип статистики, хранящейся в
|
Оператор, используемый для получения статистики, хранящейся в
|
Правило сортировки, используемое для получения статистики, хранящейся в
|
Числовая статистика соответствующего вида для
|
Значения данных столбца соответствующего типа для
|