Recentemente ho dato un'iniziativa in cui l'intervistatore mi ha chiesto di spiegare la differenza più semplice tra Stored Procedure e UDF.Stored procedure vs Compilation funzioni e differenza di prestazioni
Sono riuscito a richiamare un paio di differenze come listed here ma non ha accettato nessuna di esse come la differenza BASIC.
risposta secondo lui era che SP di sono compilati solo una volta, mentre UDF vengono compilati ogni volta essi sono chiamati con conseguente UDF di essere notevolmente più lento di stored procedure.
Ora ho cercato, ma non poteva ottenere una chiara risposta taglio se questa affermazione è vera. Si prega di verificare questo.
So che le righe stimate contano per un UDF è 1 tutto il tempo ... –
Hanno torto. Le UDF non vengono ricompilate ogni volta che vengono chiamate. Questo è possibile provare diversi modi. per esempio. traccia (ri) compilare gli eventi nel profiler, guarda i DMV in cache del piano. [La mia risposta qui] (http://stackoverflow.com/questions/19884138/why-sql-functions-are-faster-than-udf/19891697#19891697) esamina le tracce dello stack durante l'esecuzione di UDF più volte. Il sovraccarico è durante l'esecuzione non la compilazione. –
Che tipo di funzione - valutata in scala scalare o in riga o multistrato?I tre sono diversi tipi di oggetti con diversi meccanismi di esecuzione (i TVF in linea sono in linea, ad esempio :-). –