Базы данных Oracle - статьи


Введение


За прошедшее десятилетие выявились две четкие тенденции:

  1. системы баз данных стали использоваться в новых областях с новыми требованиями, например, электронная торговля,
  2. приложения баз данных становятся все более и более сложными, обеспечивая работу очень большого числа одновременных пользователей.

Поэтому проблема производительности систем баз данных стала очевидной и, тем самым, весьма критичной для использования приложений в бизнесе.

Одна из важных частей настройки работы систем баз данных – это настройка SQL-предложений. Настройка SQL включает в себя три основных этапа:

  1. Определить SQL-предложения, имеющие наибольшую нагрузку (другими словами, топ-предложения), которые ответственны за большую часть работы приложений и потребление системных ресурсов, путем просмотра хронологии SQL-деятельности, доступной в системе (например, статистика кэша курсоров сохраняется в динамическом представлении V$SQL).
  2. Проверить, что планы выполнения, предложенные оптимизатором запросов для данных предложений, выполняются достаточно хорошо.
  3. Определить действия, необходимые для исправления плохо выполняемых SQL-предложений, для получения улучшенных планов.

Эти три этапа повторяются до тех пор, пока система не достигнет удовлетворительного уровня, или до тех пор, пока не останется предложений для настройки. Эксперты – АБД или разработчики приложений, которые имеют глубокие знания в области приложений и систем баз данных, обычно производят именно такую настройку.

Корректирующие действия могут включать один или несколько следующих шагов:

  1. Накапливать и обновлять статистические данные, используемые оптимизатором запросов для построения планов выполнения. Например, создание гистограммы в столбце, содержащем асимметричные (skewed) данные.
  2. Изменить значение некоторого параметра конфигурации, который будет влиять на построение плана исполнений оптимизатором запросов. Например, применить значение optimizer_mode к first_rows_10.
  3. Переписать SQL-предложение для использования в соответствующей SQL конструкции. Например, когда возможно, заменить оператор UNION на UNION-ALL.
  4. Создать или удалить структуру доступа к данным таблицы. Например, создать индекс или материализованное представление.
  5. Добавить указания оптимизатора в предложение. Например, использовать указатель (hint) INDEX в таблице для изменения full table scan (полное сканирование таблицы) на index range scan (сканирование индексного диапазона).



  6. Начало  Назад  Вперед



    Книжный магазин