Please enable JavaScript.
Coggle requires JavaScript to display documents.
Stored Procedure e Function, vantaggi, Svantaggi, Quindi queste procedure:…
-
vantaggi
contribuiscono ad una maggior efficienza in sede di sviluppo (grazie al
principio del ri-utilizzo del codice);
migliorano il livello di astrazione (chi invoca la procedura può ignorarne i dettagli implementativi);
semplificano ed ottimizzano i rapporti tra il client (l'applicativo che utilizza i
dati) ed il server (la base dati), riducendo, inoltre, lo scambio di dati e quindi riducono il traffico di rete poichè il primo non dovrà inviare lunghe e complesse query ma, semplicemente, dovrà far riferimento al nome della procedura che desidera invocare;
aumentano il livello di sicurezza complessivo in quanto talune procedure
sono eseguite direttamente all'interno del database (e non a livello
dell'applicativo) ed è, pertanto, possibile studiare logiche di sicurezza più
restrittive in merito all'accesso diretto ai dati grazie all'uso dei diritti di accesso
forniti dal RDBMS.
Svantaggi
L’uso del SP determina inevitabilmente un aumento nel consumo di risorse
(CPU e memoria) a livello del database server.Le SP non si limitano a
richiedere il recupero dei dati ma solitamente svolgono una serie di operazioni
logiche che non sempre si adattano alle funzionalità per le quali il server DB è
stato progettato.
Le SP contengono un set di istruzioni SQL non adatto a procedure caratterizzate da una logica complessa. In altri termini non hanno la stessa
potenza computazionale dei linguaggi di programmazione
Generalmente gli RDBMS forniscono funzionalità di debugging limitate o addirittura nessuna. Per chi sviluppa questo è un problema da non
sottovalutare.
-
Quindi queste procedure:
Vengono memorizzate come parte del database, dunque sul database serve
Possono essere eseguite attraverso una semplice chiamata a funzione con tanti
vantaggi a livello di performance
-
-
STORED FUNCTION
Le Stored Functions sono simili alle SP, ma hanno uno scopo più semplice, cioè
quello di definire nuove funzioni, in aggiunta a quelle già fornite da MySQL. Esse
restituiscono un valore, e non possono quindirestituire un resultset (insieme di
record) come invece avviene per le SP.
-
La maggior parte dei DBMS le supportano. In sostanza una SP possiamo intenderla
come una funzione SQL. Infatti grazie alle Stored Procedures, il linguaggio SQL - per sua
natura dichiarativo viene "esteso" in senso procedurale (o imperativo). Esistono
difatti tante estensioni procedurali “proprietà” del linguaggio SQL, un esempio è
PLSQL di Oracle.
Quindi, ricapitolando con le SP è possibile inserire nel database MySQL dei
sottoprogrammi (funzioni o procedure).
Va però sottolineato che le SP non devono mai implementare funzionalità che non
abbiano direttamente a che fare con i dati, ossia la logica implementativa non va
spostata sul data base!
:CHECK: Lo scopo delle Stored Procedures, infatti, non è quello di
sostituirsi ai comuni linguaggi di programmazione, ma semplicemente quello di
ottimizzare processi di elaborazione strettamente legati ai dati.
In MySQL per creare una procedura si usa il comando CREATE
PROCEDURE seguito da nome della procedura.