logo site
Страницы
  • Карта Сайта
Реклама
Рубрики
  • Basic
  • C#
  • Flash
  • Net
  • Objective-C
  • Pascal
  • Ruby
  • SQL
  • Новости
  • Проектирование и архитектура
  • Фортран
Партнеры:
сентября
17

Производительность PL/SQL

Автор: admin, размещено в: Новости, комментарии: Комментариев нет

В этой статье рассказывается о том, как с помощью Real native compilation, inline-подмены и simple_integer можно увеличить производительность строк кода. Продукт Oracle Database 11g дает пару хороших новых функций, чтобы повысить производительность PL/SQL-кода, но самыми существенными из них считают подмену (intra-unit inlining) и компиляцию с приобретением исполняемого кода (native compilation).
Native compilation является не совсем новой возможностью, но теперь нет «узких» сфер ее использования, к примеру, установка C-компилятора (Oracle дал название этой замечательной возможности “Real Native Compilation”). Кроме этого, новому типу данных simple_integer присуща возможность выполнения кода лучше с помощью Native compilation.
Вспомните в Oracle9i Database Release 2 Native compilation; она выполненяет PL/SQL-программы намного быстрее, чем с интерпретируемыми конфигурациями. Но ее освоение не было быстрым, ибо многие системные админы старались сопротивляться установке требуемого C-компилятора на производственный сервер базы БД. Все, что надо сделать, это задать параметр сессии перед перекомпиляцией или созданием хранимого файла:
alter session set plsql_code_type = native;
… здесь выполняется компиляция …
Как часть перехода на 11g, я принялся к эксперименту с реальным кодом, взятым из диагностической программы, состоящим из 5 827 строк. Я сделал его компиляцию в режиме Native compilation, применив существующую БД 10g, и то же самое сделав на 11g, а потом эти действия повторил, применив режим interpreted compilation.
Результаты за себя говорят сами. При interpreted compilation срок компиляции практически одинаковый. Но при Native compilation компиляция в 11g примерно на 60 процентов меньше в сравнении с 10g, и это является существенным улучшением. В итоге, хотя Native compilation в 11g нуждается в дополнительном времени, она быстрее, нежели Native compilation в 10g.
Чтоб найти объекты, которые скомпилировали при помощи NATIVE, посмотрите сюда: USER_PLSQL_OBJECT_SETTINGS:
SQL> select name, PLSQL_code_type
2> from user_plsql_object_settings;

NAME PLSQL_CODE_TYPE
——————– —————
DO_CALC NATIVE
PERFECT_TRIANGLES NATIVE
PRIME_NUMBERS NATIVE
PRIME_NUMBERS NATIVE
SOME_MATH INTERPRETED
TR_BOOKINGS_TRACK INTERPRETED
TR_SALGRADE_COMP INTERPRETED
UPD_INT NATIVE
Похожее представление есть для всех объектов, это DBA_PLSQL_OBJECT_SETTINGS.

Комментирование закрыто.

  • Категории
  • Новости
  • Популярное
  • Комментарии
  • Архив
Programmirovanie. Все права защищены