2010-06-25 16 views
6

Jakie są różnice między procedurami przechowywanymi i funkcjami.Przechowywane procedury i funkcje

Ilekroć jest więcej danych wejściowych, parametry wyjściowe idą do procedury przechowywanej. Jeśli jest tylko jeden, pójdę po funkcje.

Poza tym, czy istnieje jakiś problem z wydajnością, jeśli używam więcej procedur przechowywanych? Martwię się, ponieważ mam blisko 50 procedur przechowywanych w moim projekcie.

Jak różnią się koncepcyjnie.

Z góry dziękuję!

edycja: -

Kiedy wykonywane obliczenia w trakcie procedury przechowywanej i w funkcji, i stwierdzili, że procedur przechowywanych jest przy 0,15 sek, podczas gdy w funkcji zajmuje 0.45sec.

Zaskakujące funkcje zajmują więcej czasu niż procedury przechowywane. Mogą być funkcje warte swojej przydatności do ponownego użycia.

Funkcje inline działają szybciej niż procedury strojone. Myślę, że dzieje się tak, ponieważ funkcje wielokrotnego wyboru nie mogą używać statastics, co spowalnia ich działanie, ale wbudowane funkcje wartości tabel mogą używać statystyk.

+1

Po przeprowadzeniu pomiarów wydajności, czego się nauczyłeś? Proszę zaktualizować pytanie faktycznymi wynikami, które faktycznie zawierały porównanie funkcji i procedury. –

+0

Ponieważ mam wiele procedur przechowywanych, chciałbym sprawdzić, czy istnieje problem z wydajnością, aby mieć tak wiele? pytanie jest edytowane. – satya

+0

Po utworzeniu funkcji PRZYKŁAD i przykładowej procedury przechowywanej i uruchomiono oba te PRZYKŁADY 1000 razy, aby zobaczyć różnicę w wydajności, czego się nauczyłeś? Przepisanie wszystkich 50 w obu formach jest * nie * pomocne. Uruchomienie dwóch PRZYKŁADÓW jest bardzo, bardzo pomocne. –

Odpowiedz

2

Różnica między procedury przechowywane i funkcje w SQL Server ...

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

Różnica pomiędzy procedur składowanych i funkcji zdefiniowanych przez użytkownika [UDF]

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

Procedury składowane w porównaniu funkcje

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

Jakie są różnice między procedury przechowywane i funkcje w ...

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

różnica między procedury przechowywane i funkcje

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

1

zdecydować między przy użyciu jednego z dwóch, należy pamiętać o zasadniczej różnicy między nimi: procedury przechowywane mają na celu zwrócenie ich wyników do aplikacji. UDF zwraca tabele zmiennych, podczas gdy SPROC nie może zwrócić zmiennej tabeli, chociaż może utworzyć tabelę. Inną znaczącą różnicą między nimi jest to, że UDF nie mogą zmienić środowiska serwera lub środowiska systemu operacyjnego, podczas gdy SPROC może. Operacyjnie, gdy T-SQL napotka błąd, funkcja przestaje działać, podczas gdy T-SQL zignoruje błąd w SPROC i przejdzie do następnej instrukcji w kodzie (pod warunkiem, że włączyłeś obsługę błędów). Przekonasz się również, że chociaż SPROC może być użyty w klauzuli XML FOR, to UDF nie może być.

Jeśli masz operację taką jak zapytanie z klauzulą ​​FROM, która wymaga zestawienia zestawów wierszy z tabeli lub zestawu tabel, to funkcja będzie Twoim właściwym wyborem. Jeśli jednak chcesz użyć tego samego zestawu zestaw wierszy w aplikacji, lepszym wyborem będzie procedura składowana.

Istnieje spora debata na temat korzyści UDF wobec SPROC. Możesz pokusić się o przekonanie, że procedury przechowywane dodają więcej do twojego serwera niż UDF. W zależności od tego, jak piszesz swój kod i rodzaj przetwarzanych danych, może to nie być prawdą. Zawsze dobrze jest tekstować swoje dane w ważnych lub czasochłonnych operacjach, wypróbowując na nich oba typy metod.

Powiązane problemy