Procedura składowana
Procedura składowana (ang. stored procedure) to element implementacji bazy danych, który znajduje się bezpośrednio w systemie bazy danych, a nie po stronie klienta. To podejście przyczynia się do zwiększenia wydajności systemu poprzez zmniejszenie liczby interakcji między klientem a systemem zarządzania bazą danych. Dodatkowo, procedury składowane wprowadzają bardziej przejrzysty interfejs między bazą danych a aplikacjami korzystającymi z niej.
Zastosowanie
- Centralizacja operacji na bazie danych
- Wprowadzenie reguł bezpieczeństwa (klient ma prawo wykonać procedurę, a nie dowolne zapytanie)
- Redukcja liczby interakcji z bazą danych
Wady
Jedną z głównych wad procedur składowanych jest to, że w bazie danych istnieje tylko jedna instancja danej procedury. Jej zmiana wpływa na działanie wszystkich elementów, które z niej korzystają, co może być trudne do śledzenia. W większości języków kompilowanych poprawność kodu jest wymagana, jednak wiele systemów DBMS nie waliduje procedur, co może prowadzić do ukrytych błędów, ujawniających się podczas pracy systemu.
W niektórych instytucjach procedury składowane są używane do nadawania uprawnień, choć programiści często są zmuszeni do korzystania z nieoptymalnych procedur. Ponadto zysk wydajnościowy związany z procedurami składowanymi jest ograniczony, ponieważ dynamiczny SQL pozwala na wykonywanie zaawansowanych zapytań. Prekompilacja, która była stosowana w starszych systemach, nie jest już powszechnie stosowana w nowszych rozwiązaniach, takich jak Microsoft SQL Server od wersji 2000.