Набор Статистики оптимизатора

Рубрика: Производительность БД

  • Настройка производительности SQL: Зависит от набора точной статистики

  • Статистика оптимизатора:

    • Объектная статистика

    • Статистика операционной системы

  • Способы сбора статистики:

    • Автоматически: Автоматические Задачи Обслуживания

    • Вручную: Пакет DBMS_STATS

    • Устанавливая параметры инициализации базы данных

    • Импортируя статистику из другой базы данных

Статистические данные оптимизатора являются наборами данных, которые являются специфическими деталями об объектах базы данных. Эти статистические данные важны для оптимизатора запросов, чтобы выбрать лучший план выполнения относительно каждого SQL-оператора. Эти статистические данные периодически собираются и не изменяются между сборами статистики.

Рекомендуемый подход к сбору статистики оптимизатора - позволить базе данных Oracle автоматически собирать статистику. Автоматические Задачи Обслуживания могут быть созданы автоматически во время создания базы данных и управляются Планировщиком. По умолчанию он собирает статистику по всем объектам в базе данных, у которых отсутствует или имеется устаревшая статистика оптимизатора. Можно изменить конфигурацию по умолчанию через страницу Automatic Maintenance Tasks.

Системные статистические данные описывают оптимизатору запросов аппаратные характеристики системы, такие как производительность ввода-вывода и ЦП и утилизация. Выбирая план выполнения, оптимизатор оценивает ввод-вывод и ресурсы ЦП, требуемые для каждого запроса. Системные статистические данные позволяют оптимизатору запросов более точно оценить ввод-вывод и затраты ЦП, и таким образом выбрать лучший план выполнения. Системные статистические данные собираются, используя процедуру DBMS_STATS.GATHER_SYSTEM_STATS. Когда база данных Oracle собирает системную статистику, она анализирует системную активность в установленный период времени. Системные статистические данные автоматически не собираются. Корпорация Oracle рекомендует, чтобы Вы использовали пакет DBMS_STATS, чтобы собирать системную статистику.

Если Вы не хотите использовать автоматический сбор статистики, то следует вручную собирать статистические данные во всех схемах, включая системные схемы. Если данные в Вашей базе данных регулярно изменяются, Вы также должны регулярно собирать статистику, чтобы гарантировать, что статистические данные точно представляют характеристики Ваших объектов базы данных. Чтобы вручную собрать статистические данные, используйте пакет DBMS_STATS. Этот PL/SQL пакет также используются, чтобы изменить, просмотреть, экспортировать, импортировать и удалить статистику.

Можно также управлять оптимизатором и набором системной статистики через параметры инициализации базы данных. Например:

  • Параметр OPTIMIZER_DYNAMIC_SAMPLING управляет уровнем динамической выборки, выполняемой оптимизатором. Можно использовать динамическую выборку, чтобы оценить статистику для таблиц и соответствующих индексов, когда они не доступны или являются слишком устаревшими, чтобы им можно было доверять. Динамическая выборка также оценивает одно-табличную селективность предиката, когда собранные статистические данные не могут использоваться или, вероятно, приведут к существенным ошибкам по оценке.

  • Параметр STATISTICS_LEVEL управляет всеми главными наборами статистики или сводками в базе данных и устанавливает уровень набора статистики для базы данных. Значениями для этого параметра являются BASIC, TYPICAL и ALL. Можно запросить представление V$STATISTICS_LEVEL, чтобы определить, на какие параметры влияет параметр STATISTICAL_LEVEL.
    Отметьте: Установка STATISTICS_LEVEL в BASIC отключает многие автоматические функции и не рекомендуется.

Далее: Использование Советника Настройки SQL: Пример

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)