gstat: статистика базы данных Firebird
Запросы внезапно замедлились, планы стали неоптимальными, а файл базы растёт сам по себе? Разобраться помогает gstat — штатная утилита диагностики из поставки Firebird. Она смотрит в базу на уровне физических страниц и показывает то, чего не видно снаружи: цепочки версий записей, состояние индексов, занятое и свободное место.
Где лежит и как запускать
Утилита входит в стандартную поставку: Linux — /opt/firebird/bin/gstat, Windows — bin\gstat каталога установки. Требует указать файл базы (или алиас) и права администратора; работает при запущенном сервере.
gstat -u SYSDBA -p masterkey /var/db/production.fdb
Ключи
| Ключ | Что показывает |
|---|---|
-a | Всё сразу (all) |
-d | Страницы данных: версии записей, цепочки, средняя длина |
-i | Индексы: глубина дерева, дубликаты, заполненность |
-t TABLE1 TABLE2 | Только указанные таблицы (имя с учётом регистра) |
-h | Заголовок базы: ODS, page size, статистика sweep, лимиты |
Как читать вывод
Раздувание версиями (bloat). В секции данных смотрите количество версий записей и среднюю длину версии. Много старых версий = недособранный мусор: долгие транзакции или редкий sweep. База при этом весит в разы больше, чем «живых» данных.
Индексы. В секции индексов важны глубина (depth) и заполненность. Глубина 1–3 — норма; 4 и больше — повод перестроить индекс. Низкая заполненность страниц — тоже признак деградации.
Заголовок. ODS-версия, размер страницы, счётчики sweep’ов — первое, что стоит смотреть при «странном поведении» после смены версии сервера.
Грабли
- gstat — диагностика, а не лечение: он ничего не удаляет и не чинит. Уборка мусора — sweep через gfix или переписывание таблиц; после чистки результат проверяют тем же gstat.
-aна большой базе ощутимо грузит диск и сервер — берите-tпо конкретным таблицам.- Версия gstat должна соответствовать ODS базы: gstat от 2.5 не откроет базу 5.0.
- Нужны права администратора; с удалённой машины работает через сервер, но локальный запуск даёт полную картину.
Графические альтернативы
Если хочется не читать вывод, а смотреть графики деградации: IBAnalyst и мониторинг HQbird анализируют ту же статистику автоматически.
Что почитать дальше
- nbackup — быстрый снапшот базы без остановки
- gbak: резервное копирование — логический бэкап и восстановление
- Таблицы мониторинга — MON$-таблицы: активные запросы и транзакции в реальном времени
Обсуждение