Модуль DB Analysis
Для анализа фрагментации, использования блоков (block utilization) и scatter factor, вам необходимо сначала запустить proutil dbanalys относительно промышленной базы данных и сохранить результат его работы. Общий синтаксис этой команды следующий:
proutil dbname -C dbanalys > dbname.stats
Обратите внимание на то, что модуль DB Analysis корректно работает только с результатами dbanalys, т.е. tabanalys или idxanalys здесь не приемлем. Файл dbname.stats, из примера выше, будет использоваться далее для описания работы с модулем.
Для интерактивной загрузки файла dbname.stats в базу данных ProMonitor необходимо сделать следующее:
- из основного меню выбрать DB Analysis -> Load Data
- ввести имя базы данных
- ввести путь и имя файла, содержащего dbanalys (в нашем случае dbname.stats)
- немного подождать, пока данные не будут загружены в базу ProMonitor.
Для загрузки dbname.stats в фоновом (batch) режиме, необходимо выполнить следующую команду:
mbpro dbname –p dbanal.p –param “dbanalys_dbname,dbname.stats”
здесь, “dbanalys_dbname” это имя базы данных, соответствующее имени введенному в базе ProMonitor, не нужно указывать полный путь.
Любые ошибки, возникшие в процессе работы этой программы, будут записаны в файл с именем dbanal.log.
Так же существует не поддерживаемая программа с именем loaddba.p, которая позволяет загружать dbanalys для всех баз данных за один раз. Для детального изучения ее работы, смотрите исходный код этой программы.
Если вы получили какие-либо ошибки во время загрузки данных, то это может быть причиной одной из следующих проблем:
- есть несколько ошибок (bugs) в proutil dbanalys, которое ProMonitor не может обнаружить.
- загружается tabnalys или idxanalys вместо dbanalys.
Для получения отчетов по базам данных существует несколько специальных пунктов меню.
DB Analysis -> Table Analysis Report
Этот отчет отображает информацию о таблицах базы данных которая может сортироваться по следующим значениям:
- имя таблицы
- общее количество записей в таблице
- общее количество байт в таблице
- минимальный размер записи
- максимальный размер записи
- средний размер записи
- процент фрагментации (пример экрана ниже, это старый вариант, который фактически отображает Fragmentation Factor из dbanalys)
- Scatter factor
- Номер области (Area number)
Так же, для облегчения восприятия информации, вы так же можете установить пороговое значения (поле Threshold), для фильтрации данных. Можно ввести ограничение по минимальному количеству записей в таблицах. Обычно просматриваются таблица с записями от 50 000 – 100 000 и имеющие Scatter Factor равный 4 и выше. Для поиска предыдущего dbanalys, вы можете использовать клавиши F5/CTRL-G в поле Date.
DB Analysis -> Index Analysis Report
Этот отчет отображает состояние индексов базы данных, и может сортироваться по следующим данным:
- имя индекса
- количество полей в индексе
- количество B-tree уровней в индексе
- общее количество блоков в индексе
- общее количество байт в индексе
- процент использования (percent utilization)
- коэффициент (factor).
Для облегчения восприятия информации, вы так же можете установить пороговое значения (поле Threshold), для фильтрации данных. Можно ввести ограничение по минимальному количеству индексных блоков. Обычно просматриваются индексы с количеством блоков от 1 000 – 5 000 и имеющие процент использования менее 50%. Для поиска предыдущих результатов dbanalys, вы можете использовать клавиши F5/CTRL-G в поле Date.
DB Analysis -> Block Analysis Report
Этот отчет содержит различную информацию, которая содержится в dbanalys, такую как:
- общее количество индексных блоков
- общей процент использования индексных блоков
- общее количество блоков данных (RM)
- общие процент использования RM – блоков
- общее количество блоков в базе данных
- общее количество Empty – блоков
- общее количество Free – блоков.
Для выбора информации между датами, используйте клавиши F5/CTRL-G.
DB Analysis -> dbanalys Info
Отображается список загруженных dbanalys, содержащий время старта и время окончания запуска каждого из них. Поскольку чем больше фрагментирована база данных, и чем больше разброс (scattered) данных, тем дольше будет формироваться dbanalys. Увеличение времени формирования может способствовать решению о перезагрузки (dump/load) данных. Так же отчет отображает количество таблиц и индексов в базе данных и их соотношение (поле Index:Table Ratio). Это позволяет идентифицировать “under-indexed” базы данных.
DB Analysis -> Size Summary
Отчет отображает итоговую информацию по таблицам и индексам относительно конкретного загруженного dbanalys. А именно:
- общее количество записей (по таблицам и в общем)
- общее количество байт (по таблицам и в общем)
- общее количество индексных байт( по таблицам и в общем)
- общее количество байт в записях и индексах (по таблицам и в общем)
- общее количество индексов (по таблицам и в общем)
Для выбора варианта dbanalys используйте клавиши F5/CTRL-G в поле Date.
DB Analysis -> Table Analysis Comparison
Отображается изменение размера таблиц между двумя сравниваемыми dbanalys. Сортировка может быть выполнена по самому большому или по самому маленькому приросту. Для выбора необходимых dbanalys используйте клавиши F5/CTRL-G в поле Date.
DB Analysis -> Record Fragmentation Report
Этот отчет дополняет отчет о Fragmentation Factor. Фрагмент, это запись разделенная на две и более частей. А это означает, что для чтения записи необходимо несколько обращений к диску. Отчет показывает как много раз выполнялось избыточное считывание (excess I/O) из-за фрагментированных данных. Заметьте, что эти данных не основываются на dbanalys, и базируются на фактическом I/O при считывании записей.
DB Analysis -> Index/Table Ratio Report
Отчет показывает соотношении индексов и таблиц в базе данных. Плохо проиндексированная база данных будет иметь низкие коэффициенты (обычно менее 3:1), что может являться причиной плохой производительности.
Примечание. Можно было бы сделать функцию формирования dbanalys из меню ProMonitor, но это не было сделано, потому что в основном dbanalys рекомендуется выполнять когда система минимально используется, т.к. его формирование вызывает серьезную нагрузку. Поэтому, с целью сохранения производительности системы, рекомендуется формировать dbanalys на копии базы данных
|