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% значений являются ненулевыми и каждое ненулевое значение в среднем появляется примерно дважды, может быть представлено как |
Кодовый номер, указывающий тип статистики, хранящейся в
|
Оператор, используемый для получения статистики, хранящейся в
|
Правило сортировки, используемое для получения статистики, хранящейся в
|
Числовая статистика соответствующего вида для
|
Значения данных столбца соответствующего типа для
|