Poszukuję kanonicznej odpowiedzi na pytanie, dlaczego pakiety powinny być preferowane w bazie danych Oracle zamiast samodzielnych procedur i funkcji.
Korzyści z pakietów
Logiczne grupowanie - metody, które działają razem, mogą być umieszczone w spójnej jednostce, a nie tylko logicznie połączone, ale fizycznie oddzielne.
Bezpieczne prywatne metody - funkcje i procedury mogą być prywatne dla pakietu i mogą być używane tylko w nim. Dzięki temu powierzchnia publiczna jest prostsza i bezpieczniejsza.
Zarządzanie uprawnieniami - uprawnienia można przyznać raz dla grupy procedur, które współpracują, a nie osobno dla każdej wymaganej procedury / funkcji.
Bezpieczne pakowanie - Opakowane pakiety są trudniejsze do rozpakowania niż opakowane funkcje / procedury.
Uproszczone nazewnictwo - większa przestrzeń nazw pozwala na nazwy, które są prostsze i mogą być ponownie użyte w innych pakietach.
Lepsza wydajność - Pakiety mogą być kompilowane i ładowane do pamięci w całości, a nie fragmentarycznie jak inne metody. Ta korzyść, jeśli w ogóle istnieje, jest minimalna w porównaniu z innymi korzyściami.
Zmniejszone unieważnienie - zmiana treści pakietu nie unieważnia zależności, podobnie jak zmiana funkcji lub procedury.
Unikalne funkcje - zmienne pakietu, stałe pakietu, inicjalizacja, stan sesji, komentarze do pakietu i przeciążone metody.
Odniesienia:
11.2 Przewodnik pojęciach
Zadaj Tomowi pytanie
StackOverflow.com Pytanie o rozpakowywanie wydajności pakietu
Prezentacja PL / SQL (pdf)