Оптимизация приложения Oracle и настройка кода PL/SQL

Оптимизация приложений PL/SQL для OracleОптимизация приложения Oracle — это сложный процесс, включающий оптимизацию команды SQL, проверку правильности конфигурации системной глобальной области (SGA), оптимизацию алгоритмов и т. д. Настройка отдельных программ PL/SQL немного проще, но тоже сопряжена с преодолением ряда трудностей. Прежде чем тратить время на попытки повысить производительность кода PL/SQL, необходимо сделать следующее:

  •  Настроить доступ к коду и данным в SGA. Перед выполнением программный код загружается в область памяти Oracle, называемую SGA. Этот процесс может потребовать оптимизации, как правило, осуществляемой администратором базы данных.
  •  Оптимизировать команды SQL. Практически в любом приложении, разработанном для РСУБД Oracle, большая часть операций по настройке связана с оптимизацией команд SQL. Например, если в программе производится неэффективное объединение данных из 16 таблиц, это сводит на нет все попытки усовершенствования процедурного блока кода. Существует множество инструментальных средств сторонних производителей, которые упрощают работу администраторов баз данных и разработчиков, выполняют сложный анализ SQL-кода и предлагают более эффективные альтернативы.
  •  Используйте самый высокий уровень оптимизации. В Oracle10g появился оптимизирующий компилятор для кода PL/SQL. Используемый по умолчанию уровень 2 прилагал максимум усилий к тому, чтобы ускорить работу вашего кода (Oracle11g поддерживает еще более высокий уровень оптимизации 3; впрочем, по умолчанию продолжает использоваться уровень 2, которого должно быть достаточно для подавляющего большинства ваших программ).

Если вы убедились в том, что контекст выполнения кода PL/SQL не имеет очевидных недостатков из области эффективности, обратите внимание на пакеты и другой код.

  •  Используйте при разработке приложения передовые методы и стандарты. При реализации исходных требований к программе старайтесь применять наиболее эффективные методы, однако не стоит чрезмерно беспокоиться о доведении до совершенства каждой строки кода. Помните, что большая часть написанного кода не является слабым местом программы и не нуждается в оптимизации.
  •  Анализируйте эффективность выполнения разных компонентов приложения. Если скорость работы приложения недостаточно высока, выясните, какие именно элементы приложения замедляют его работу, и сконцентрируйтесь на них.
  •  Оптимизируйте алгоритмы. Поскольку PL/SQL является процедурным языком программирования, его часто применяют для реализации сложных формул и алгоритмов. В программах можно встретить условные операторы, циклы, операторы GOTO и многократно используемые модули. Программные алгоритмы могут быть реализованы множеством разных способов, причем далеко не все из них успешны. Как же оптимизировать неудачно написанный алгоритм? На этот вопрос не существует простого ответа. Ведь процесс оптимизации алгоритмов гораздо сложнее оптимизации команд языка SQL (который является структурированным языком, а следовательно, хорошо подходит для автоматизированного анализа).
  •  Пользуйтесь всеми доступными средствами повышения производительности PL/ SQL. Корпорация Oracle включила в свой продукт множество средств, повышающих эффективность выполнения программного кода. Пользуйтесь такими конструкциями, как RETURNING или FORALL, и ни в коем случае не применяйте устаревшие методы, за которые приходится расплачиваться снижением эффективности приложения.
  •  Найдите баланс между производительностью и затратами памяти. Многие приемы, повышающие производительность кода, приводят к дополнительным затратам памяти — обычно PGA (Program Global Area), но иногда и SGA. Молниеносная быстрота не принесет никакой пользы, если затраты памяти окажутся неприемлемыми в вашей рабочей среде.

Подробное рассмотрение оптимизации SQL и настройки базы данных и SGA выходит за рамки книги. Впрочем, в этой книге будут представлены важнейшие средства оптимизации проектировании PL/SQL, а также советы относительно их применения для достижения максимально быстрого выполнения PL/SQL.

Наконец, не стоит забывать, что оптимизация производительности является делом совместным. Работайте в тесном контакте с администратором базы данных, особенно в том, что касается использования таких ключевых возможностей, как коллекции, табличные функции и кэширование результатов функций.

  

 

Вас заинтересует / Intresting for you:

Правила вызова элементов пакет...
Правила вызова элементов пакет... 4463 просмотров Игорь Воронов Wed, 10 Oct 2018, 15:14:53
Создание и редактирование исхо...
Создание и редактирование исхо... 3010 просмотров Stas Belkov Sun, 14 Jan 2018, 07:45:54
Когда используются пакеты (pac...
Когда используются пакеты (pac... 3633 просмотров Игорь Воронов Fri, 12 Oct 2018, 11:21:17
Оптимизирующий компилятор PL/S...
Оптимизирующий компилятор PL/S... 2599 просмотров Александров Попков Fri, 16 Nov 2018, 15:34:47
Войдите чтобы комментировать

dbstalker аватар
dbstalker ответил в теме #9494 4 года 6 мес. назад
Общие, конечно, но весьма полезные рекомендации. Так сказать, помогают понять с чего делать заход в теме.