2010-06-25 1 views
6

Quali sono le differenze tra stored procedure e funzioni.Procedure e funzioni memorizzate

Ogni volta che ci sono più input, i parametri di output vado per la stored procedure. Se è solo uno andrò per le funzioni.

Oltre a ciò, esiste un problema di prestazioni se utilizzo più stored procedure? Sono preoccupato perché ho quasi 50 stored procedure nel mio progetto.

Come differiscono concettualmente.

Grazie in anticipo!

Edited: -

Quando ho eseguito un calcolo in stored procedure e funzioni, ho trovato che nelle stored procedure che sta prendendo 0,15 sec, mentre in funzione prende 0.45sec.

Sorprendentemente le funzioni richiedono più tempo rispetto alle stored procedure. Possono essere le funzioni valgono per la sua riusabilità.

Le funzioni inline vengono eseguite più rapidamente rispetto alle procedure con sollecitazione. Penso che questo sia dovuto al fatto che le funzioni di selezione multipla non possono usare le statiche, cosa che le rallenta, ma le funzioni di valori di tabelle incorporate possono utilizzare le statistiche.

+1

Quando hai eseguito le misurazioni delle prestazioni, cosa hai imparato? Si prega di aggiornare la domanda con i risultati effettivi effettivamente confrontando una funzione e una procedura. –

+0

Come ho molte stored procedure, vorrei verificare, se c'è qualche problema di prestazioni per avere così tanti? la domanda è modificata. – satya

+0

Quando hai creato una funzione EXAMPLE e una procedura EXAMPLE memorizzata e hai eseguito entrambi questi EXAMPLES 1000 volte per vedere la differenza di prestazioni, che cosa hai imparato? Riscrivere tutti e 50 in entrambe le forme è * non * utile. Eseguire due ESEMPI è molto, molto utile. –

risposta

2

Differenza tra stored procedure e funzioni in SQL Server ...

http://www.dotnetspider.com/resources/18920-Difference-between-Stored-Procedure-Functions.aspx

Differenza tra Le stored procedure e funzioni definite dall'utente [UDF]

http://www.go4expert.com/forums/showthread.php?t=329

procedure vs. funzioni memorizzate

http://searchsqlserver.techtarget.com/tip/Stored-procedures-vs-functions

Quali sono le differenze tra stored procedure e funzioni in ...

http://www.allinterview.com/showanswers/28431.html

differenza tra stored procedure e funzioni

http://www.sqlservercentral.com/Forums/Topic416974-8-1.aspx

1

decidere tra utilizzando uno dei due, tenere presente la differenza fondamentale tra di essi: le stored procedure sono progettate per restituire il proprio output all'applicazione. Un UDF restituisce variabili di tabella, mentre uno SPROC non può restituire una variabile di tabella sebbene possa creare una tabella. Un'altra differenza significativa tra di loro è che le UDF non possono cambiare l'ambiente del server o l'ambiente del tuo sistema operativo, mentre un SPROC può. Operativamente, quando T-SQL incontra un errore, la funzione si ferma, mentre T-SQL ignorerà un errore in un SPROC e passerà alla successiva dichiarazione nel codice (a condizione che tu abbia incluso il supporto per la gestione degli errori). Scoprirai anche che, sebbene un SPROC possa essere usato in una clausola XML FOR, non può esserlo una UDF.

Se si dispone di un'operazione come una query con una clausola FROM che richiede che un set di righe venga estratto da una tabella o da un gruppo di tabelle, una funzione sarà la scelta appropriata. Tuttavia, quando si desidera utilizzare lo stesso set di righe nell'applicazione, la scelta migliore è una stored procedure.

C'è un bel po 'di dibattito sui vantaggi prestazionali delle UDF rispetto ai SPROC. Potresti essere tentato di credere che le stored procedure aggiungano un sovraccarico al tuo server piuttosto che una UDF. A seconda di come scrivi il tuo codice e del tipo di dati che stai elaborando, questo potrebbe non essere il caso. È sempre una buona idea inviare i tuoi dati in operazioni importanti o che richiedono molto tempo, provando entrambi i tipi di metodi.