Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server:funkcje z wartościami przechowywanymi w tabeli a procedury składowane

Wbudowana funkcja tabelaryczna (TVF) jest jak makro:jest rozszerzona na zapytanie zewnętrzne. Nie ma planu jako takiego:wywołujący SQL ma plan.

Wielowypowiedziowy TVF ma plan (znajdzie odniesienie).

TVF są przydatne, gdy chcesz zmienić listę WYBIERZ dla sparametryzowanego wejścia. Inline TVF są rozszerzane, a zewnętrzny wybór/gdzie zostanie wzięty pod uwagę przez optymalizatora. W przypadku wielowyrazowych plików TVF optymalizacja nie jest tak naprawdę możliwa, ponieważ musi działać do końca, wtedy filtr.

Osobiście używałbym przechowywanego proc na wielowyrazowym TVF. Są bardziej elastyczne (np. podpowiedzi, mogą zmienić stan, SET NOCOUNT ON, SET XACTABORT itp.).

Nie mam zastrzeżeń do wbudowanych plików TVF, ale nie używam ich w kodzie skierowanym do klienta z powodu niemożności użycia funkcji SET i zmiany stanu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak serializować duży wykres obiektu .NET do obiektu BLOB programu SQL Server bez tworzenia dużego bufora?

  2. Napraw komunikat 529 „Wyraźna konwersja typu danych typu int do xml jest niedozwolona” w SQL Server

  3. Ograniczenie klucza obcego może powodować cykle lub wiele ścieżek kaskadowych?

  4. Utwórz zapytanie w SQL Server 2017

  5. SQL Server - połącz się z uwierzytelnianiem Windows