Утилита Lock Print
Утилита Lock Print
Программой, которая выбирает статистику таблицы блокировки, является исполняемый модуль fb_lock_print, который можно найти в каталоге /bin каталога инсталляции Firebird. (Для версии 1.0.x ищите iblockpr.exe в Windows или gds_lock_pr в POSIX.) Доступны два синтаксиса: один для статичного отчета, другой для задания интерактивной выборки в указанных интервалах.
Синтаксис для Firebird 1.5 и выше:
fb_lock jprint <переключатели>
Версия 1.0.x, POSIX:
gds_lock_pr <переключатели>
Версия 1.0.x, Windows:
iblockpr <переключател14>
Программа fb lock print имеет множество переключателей, описанных в табл. 40.1. Когда не задано ни одного переключателя, fb lock print выводит итоговую информацию, описывающую заголовок блока и владельцев, связанных с Менеджером блокировок.
Таблица 40.1. Переключатели для отчетов Lock Print
Переключатель
Описание
(нет переключателей)
Выводит итоговую информацию, описывающую заголовок блока и владельцев, связанных с Менеджером блокировок
-a
Выводит содержимое таблицы блокировок, включая заголовок блока, группы блоков, группы владельцев и группы запросов. Группа блока представляет ресурс, который должен быть заблокирован (база данных, транзакция, отношение, страница базы данных и т.д.), и идентифицирует владельца, который имеет или запросил блокирование этого объекта. Группа запроса описывает запрос в процессе блокирования ресурса. Группа запроса может описывать или предоставленную блокировку, или ожидание завершения запроса на блокировку
-с
Указывает, что таблица блокировок должна быть скопирована, а не использована сама. Копирование является быстрым и создает мгновенный статичный снимок таблицы блокировок. Тем не менее он остановит все процессы доступа к базе данных на время своего выполнения
-f
Задает, что анализ должен быть выполнен на указанном файле, а не на настоящем файле блокировки. К сожалению, этот переключатель не работает в Firebird
-h
Выводит только историю
-i <переключатели> <t> <n>
Запускает интерактивный режим (см. разд. "Интерактивные отчеты"). Если указано только -i, то выводятся все данные
-l
Выводит только группы блоков
-n
Указывает, что не существует "никакого моста". Мост является переходным механизмом, распознающим множество серверов различных версий Firebird на одной машине. Это не доступно в версиях Firebird 1.0.x или 1.5, но, скорее всего, будет реализовано в следующих версиях Firebird
-o
Выводит группы владельцев
-p
То же, что и -о. (Группы владельцев, используемых в вызовах групп процессов.)
-r
Выводит группы запросов
-s <n>
Выводит заголовок таблицы блокировок, группы владельцев и блокировки указанных серий. Аргумент <n> указывает тип блокируемого ресурса, который вы хотите отобразить. Номера см. в табл. 40.5
-t
Выводит статистику для всех серий (только интерактивный отчет)
-w
Выводит "граф ожидания" - блоки владельцев с запросами ожидания, чего они ожидают, чего ожидают их владельцы и т.д. В этом отчете вы можете просмотреть, какой запрос владельца блокирует другие запросы в таблице блокировок. Это самый простой способ найти блокировки, хотя полное отображение блокировок даст вам много больше информации относительно взаимосвязей, находящихся в очереди запросов
Статичные отчеты
Статичные отчеты выводят текущее состояние (мгновенный снимок) таблицы блокировок. Допустимы любые переключатели, за исключением -i, вы можете "затолкать" в него множество переключателей. Например, для вывода "ожидающего" графа плюс группы истории введите:
fb_lock_print -wh