Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

pg_statistic

Системная таблица pg_statistic хранит статистические данные о содержимом базы данных. Записи создаются командой ANALYZE и впоследствии используются оптимизатором запросов. Для каждого столбца таблицы, который был проанализирован, имеется одна запись. Заметьте, что все эти данные по природе своей неточные, даже если предполагается, что они актуальны.

pg_statistic также хранит статистические данные о значениях выражений индексов. Они описываются так, как если бы это были реальные столбцы данных; в частности, starelid ссылается на индекс. Однако для столбцов, задействованных в индексе без выражений, дополнительная запись не добавляется, так как она повторяла бы запись для нижележащего столбца таблицы. В настоящее время во всех записях для выражений индексов stainherit = false.

Когда stainherit = false, обычно имеется одна запись для каждого столбца таблицы, для которого была выполнена аналитика. Если у таблицы есть дочерние таблицы, Greengage DB создает вторую запись с stainherit = true. Эта строка представляет статистику столбца в дереве наследования, например статистику для данных, которые вы увидите при SELECT column FROM table*, тогда как строка stainherit = false представляет результаты SELECT column FROM ONLY table.

Поскольку для разных типов данных могут подходить разные виды статистики, pg_statistic спроектирован так, чтобы не делать конкретных предположений о том, какая статистика в ней хранится. Только самая общая статистика (например, доля NULL) имеет выделенные столбцы в pg_statistic. Все остальное хранится в слотах — группах связанных столбцов, содержимое которых определяется кодовым номером в одном из столбцов слота.

Статистическую информацию о содержимом таблицы следует считать конфиденциальной (например, минимальные и максимальные значения в столбце зарплаты). pg_stats — общедоступное для чтения представление pg_statistic, которое раскрывает информацию только о тех таблицах, которые доступны для чтения текущему пользователю.

ВНИМАНИЕ

Диагностические инструменты, такие как gpsd и minirepro, собирают конфиденциальную информацию из pg_statistic, например, границы гистограмм, в читаемом виде. Всегда проверяйте файлы вывода этих утилит, чтобы убедиться, что их содержимое допустимо для передачи за пределы базы данных в вашей организации.

Столбец Тип Ссылки Описание

starelid

oid

pg_class.oid

Таблица или индекс, к которому относится описываемый столбец

staattnum

int2

pg_attribute.attnum

Номер описываемого столбца

stainherit

boolean

 — 

Если true, статистика включает унаследованные столбцы, а не только значения в указанных отношениях

stanullfrac

float4

 — 

Доля записей столбца, которые равны NULL

stawidth

integer

 — 

Средняя длина (в байтах) хранимых для значений, отличных от NULL

stadistinct

float4

 — 

Число различных не-NULL значений в столбце. Значение больше нуля — фактическое число различных значений. Значение меньше нуля — отрицательная величина доли от числа строк в таблице (например, столбец, в котором значения в среднем встречаются примерно дважды, может быть представлен как stadistinct = -0.5). Нулевое значение означает, что число различных значений неизвестно

stakind*N*

int2

 — 

Кодовый номер, указывающий вид статистики, хранящейся в N-м слоте строки pg_statistic

staop*N*

oid

pg_operator.oid

Оператор, используемый для получения статистики, хранящейся в N-м слоте. Например, слот гистограммы покажет оператор <, определяющий порядок сортировки данных

stanumbers*N*

float4[]

 — 

Числовая статистика подходящего вида для N-го слота или NULL, если тип слота не предполагает числовых значений

stavalues*N*

anyarray

 — 

Значения данных столбца подходящего типа для N-го слота или NULL, если тип слота не хранит никаких значений данных. Фактически значения элементов каждого массива имеют тип данных конкретного столбца, поэтому задать типы этих столбцов более конкретно, чем anyarray, невозможно