Ищите канонический ответ на вопрос о том, почему пакеты должны быть предпочтительнее в базе данных Oracle, чем автономные процедуры и функции.
Ищите канонический ответ на вопрос о том, почему пакеты должны быть предпочтительнее в базе данных Oracle, чем автономные процедуры и функции.
Ответы:
Преимущества пакетов
Логическая группировка - методы, которые работают вместе, могут быть объединены в единое целое, а не просто логически связаны, а физически разделены.
Безопасные приватные методы - функции и процедуры могут быть сделаны приватными для пакета и использоваться только внутри него. Это делает общественную поверхность более простой и безопасной.
Управление привилегиями - разрешения могут предоставляться один раз для группы процедур, которые работают вместе, а не отдельно для каждой требуемой процедуры / функции.
Безопасная упаковка - упакованные пакеты сложнее развернуть, чем упакованные функции / процедуры.
Упрощенное именование - большее пространство имен позволяет использовать более простые имена, которые можно повторно использовать в других пакетах.
Лучшая производительность - пакеты могут быть скомпилированы и загружены в память целиком, а не по частям, как другие методы. Эта выгода, если она вообще существует, минимальна по сравнению с другими выгодами.
Сокращенная недействительность - изменение тела пакета не делает недействительными зависимости, как изменение функции или процедуры.
Уникальные возможности - переменные пакета, константы пакета, инициализация, состояние сеанса, комментарии пакета и перегруженные методы.
Ссылки:
11.2 Руководство по концепциям
Задайте вопрос Тому
StackOverflow.com Вопрос о производительности пакета
Развертывание презентации PL / SQL (pdf)