Dividerò questa risposta in due parti.
Non la definizione esatta, ma solo una panoramica di base sulle Stored procedure.
Le procedure memorizzate sono fondamentalmente un insieme di istruzioni SQL, che possono essere salvate nel database con un nome e possono essere chiamate per ottenere i risultati desiderati. Una procedura memorizzata può contenere una singola query sql o più query sql in base alla complessità del requisito.
Vantaggi delle procedure memorizzate.
- Cosa rende scalabile un sito Web?
- Qual è il miglior linguaggio di backend per creare un semplice sito Web con funzionalità simili a blog / portfolio nel 2017? Sono bloccato tra Ruby, PHP (WordPress) e Node.
- Quale strumento o piattaforma dovrei usare per avviare un negozio di e-commerce con UN prodotto?
- Qual è il modo migliore per imparare i CSS online?
- Quanti codici colore esadecimali ci sono?
- Migliora le prestazioni del database . Come ? Bene, quando SQL esegue qualsiasi query, rappresenta il modo più efficiente di elaborare la query e crea un piano di esecuzione. Il tempo impiegato per creare il piano di esecuzione è sostanzialmente il tempo necessario per eseguire la query. Pertanto, quando vengono eseguite query sql separate dall’interno dell’applicazione, ogni volta che viene creato il piano. Ma quando viene eseguita una Stored Procedure, il piano creato la prima volta durante la sua esecuzione viene archiviato nella memoria. Quindi la prossima volta che questa stessa Stored Procedure viene eseguita, non crea un nuovo piano. Prende il piano archiviato nella memoria e lo riutilizza. Quindi, ottieni una rapida esecuzione e migliori prestazioni del database.
- Riutilizzabilità. Come? – Supponiamo che tu abbia una pagina che elenca i dipendenti che lavorano nell’azienda. Quindi scrivi una query inline nella tua applicazione “Seleziona * da tblEmployee”. Giusto. Ora arriva un nuovo requisito, dice che selezionando un valore a discesa, dovrebbe elencare tutti i dipendenti a tempo pieno. Quindi, al cambio del menu a discesa, scrivi un’altra query. “Seleziona * da tblEmployee dove IsFulltimeEmp = ” Ancora abbastanza giusto. Ora un altro requisito arriva dopo qualche tempo. Un altro filtro, filtrare i dipendenti che si uniscono in base alla data selezionata. Quindi, in sostanza, stai aggiungendo sempre più query in linea alla stessa tabella con la semplice modifica dei filtri. D’altra parte, è possibile creare una Stored procedure. Tale procedura memorizzata può accettare alcuni parametri in base ai criteri di ricerca. E in base a tali valori di parametro, è possibile scrivere le query di ricerca all’interno della procedura memorizzata stessa. Domani, se vengono aggiunti altri filtri a questo scenario, tutto ciò che devi fare è apportare modifiche alla Stored Procedure e sarai ordinato. Ottieni riusabilità e un sacco di tempo risparmiando, poiché devi solo occuparti della SP invece di tutte quelle query in linea scritte qua e là. Di seguito potrebbe essere un ottimo esempio della funzionalità simile
Creazione di stored procedure con ricerca dinamica (filtro)
- Facile da mantenere. Come? – Supponiamo che l’applicazione sia utilizzata da più client. Il tuo database è condiviso tra loro. E vuoi apportare una modifica ad alcune funzionalità. Avevi scritto una query incorporata nella tua applicazione e ora desideri modificarla. Quindi lo cambi sul tuo sistema e poi passi alla distribuzione. Quindi dovrai costruirlo, compilare, pubblicare e distribuire la dll a tutti i client. Questo è dolore nel culo. Supponiamo che tu abbia una procedura memorizzata anziché questa. Modificare la procedura memorizzata nel database ed eseguirla. Le modifiche vengono apportate e riflesse tra i tuoi clienti. Anche se non condividono il database, puoi semplicemente inviare loro il SP aggiornato e tutto ciò che hanno fatto è incollarlo nel loro server SQL e premere F5. La manutenzione è facile e la sostituzione senza problemi.