Следующая строка
gstat -data база-данных
просматривает в базе данных таблицу за таблицей, отображая итоговую информацию о страницах данных. Для включения в отчет системных таблиц (RDB$XXX) добавьте переключатель -system. На рис. 18.6 показан пример вывода.
Рис. 18.6. Пример итогового вывода по страницам данных в gstat
Вывод в командной строке аналогичен.
COUNTRY (31)
Primary pointer page: 190, Index root page: 19
Data pages: 1, data page slots: 1, average fill: 26%
Fill distribution:
0 - 19% = 0
20 - 39% = 1
40 - 59% = 0
60 - 79% = 0
80 - 99% = 0
Для каждой таблицы базы данных отображаются числа, показанные в табл. 18.4.
Глава 18. Индексы
375
Таблица 18.4. Вывод gstat -d[ata]
Элемент | Описание |
Primary pointer page | Номер первой страницы косвенных указателей на страницы, хранящие данные таблицы |
Index root page | Номер страницы, которая является первой страницей указателей на индексы таблицы |
Data pages | Общее количество страниц, в которых хранятся данные таблицы. Этот счетчик включает страницы, хранящие неподтвержденные версии записей и мусор, потому что gstat не может их отличить друг от друга |
Data page slots | Количество указателей на страницы базы данных, содержащихся на страницах указателей. Должно равняться числу страниц данных |
Average fill | Это гистограмма из пяти 20-процентных "полос", каждая из которых показывает количество страниц данных, чье среднее заполнение попадает в этот диапазон. Процент заполнения определяется соотношением пространства каждой страницы, содержащей данные. В нашем примере среднее заполнение низкое, потому что база данных employee.gdb содержит небольшие структуры записей, и их не так много. Сумма этих чисел дает общее количество страниц, содержащих данные |
Fill distribution | Обобщающая гистограмма распределения использования памяти для всех страниц, выделенных в таблице. В нашем примере пока используется только одна страница, и она имеет менее 40% заполнения |
Если вам не нужен отчет по данным для всех таблиц, вы можете использовать переключатель -t для задания списка таблиц, интересующих вас.
Синтаксис:
gstat -data база-данных -t имя-таблицы1 [имя-таблицы2 [ имя-таблицы3 ..]]
! ! !
ПРИМЕЧАНИЕ. Имена таблиц должны быть набраны в верхнем регистре. К сожалению, gstat не поддерживает переключатель -t[able-list] для баз данных, которые используют чувствительные к регистру идентификаторы таблиц, заключенные в кавычки.
. ! .
Следующая строка
gstat -r база-данных
отображает статистику по размерам и версиям записей.
* Для строк: среднее значение длины строк в байтах и общее количество строк в таблице.
* Для старых версий: среднее значение длины версий в байтах, общее количество версий в таблице и максимальная цепочка версий для записи.
Общее количество строк в таблице может включать активные и зависшие транзакции. Длина записей и версий применима к фактическим данным пользователя - длина не использует счетчик в заголовке, который предшествует каждой версии записи.
Три таблицы (CAULDRON, CAULDRON1 и CAULDRON2) имеют одинаковые метаданные и объем 100 000 записей. Номинальная, несжатая длина записи 900 байт.
CAULDRON - чистая таблица без старых версий строк. Средняя длина хранимой строки 121 байт - приблизительно 87% сжатия.
CAULDRON1 имеет активную, все еще выполняющуюся транзакцию:
DELETE FROM CAULDRON1;
Каждая строка имеет нулевую (0.00) длину, потому что первичная запись является заглушкой удаления (delete stub), которая содержит только заголовок строки. Все подтвержденные записи были восстановлены как старые версии и сжаты до того же размера, который они имели, когда были первичными записями. Таблица содержит то же количество страниц (4000), что и до операции DELETE. Средний коэффициент заполнения составляет от 85 до 95% для размещения всех заглушек удаления.