Разработчики PL/SQL
редко проявляют интерес к архитектуре языка PL/SQL
. Типичный представитель нашего сообщества склонен изучить базовый синтаксис PL/SQL
, написать свою программу и отправиться домой, чтобы провести побольше времени с семьей или друзьями. И это очень правильный подход!
Тем не менее, на наш взгляд, каждому разработчику желательно хотя бы в общих чертах разбираться в архитектуре PL/SQL
. Это позволит не только повысить эффективность использования памяти в программах, но и добиться от программ и приложений того, что на первый взгляд сделать невозможно.
В этой серии статей вы найдете ответы на следующие вопросы (а также на многие другие):
- Как исполняющее ядро
PL/SQL
использует память и что можно сделать для управления ее использованием? - Стоит ли использовать компиляцию в низкоуровневый код или придерживаться используемого по умолчанию режима интерпретации? И вообще — что такое «низкоуровневый код»?
- Почему мои программы вдруг становятся неработоспособными (
INVALID
) и как восстановить их работоспособность? - Мои таблицы продублированы в 20 разных схемах. Мне действительно придется сопровождать 20 копий своего кода для каждой из этих схем?
- Что такое
DIANA
?
DIANA
При изучении внутренней структуры компилятора PL/SQL
неизменно возникает вопрос: «Что такое DIANA
?» Это сокращение (Distributed Intermediate Annotated
Notation for Ada
, «распределенная промежуточная аннотированная запись для Ada
») является частью наследия PL/SQL
, произошедшего от языка программирования Ada
. У некоторых компиляторов Ada
в первой фазе компиляции генерируется код DIANA
. Язык PL/SQL
тоже изначально генерировал код DIANA
в первой фазе процесса компиляции. Программисту PL/SQL
никогда не приходится иметь дело с кодом DIANA
. Когда-нибудь компания Oracle, по примеру некоторых разработчиков компиляторов Ada
, может решить, что код DIANA
стал пережитком прошлого, и использовать другой механизм. Такие изменения во внутренней реализации случаются — например, в сегментном управлении памятью когда-то использовались списки свободных блоков, а теперь используются битовые карты.
Знание DIANA
может принести вам репутацию эрудита, но оно не повысит эффективность ваших программ (если вы не занимаетесь разработкой компиляторов PL/SQL
). Если же Вы хотите писать действительно эффективный код на PL/SQL, то крайне важно понимать, как Oracle выполняет код PL/SQL.