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

Czy TSQL zwróci szybsze wyniki niż procedura składowana w SQL Server?

W zapytaniach dodaj OPTION(OPTIMIZE FOR UNKNOWN) (jako ostatnia klauzula), aby zapobiec podsłuchiwaniu parametrów. Składnia i wyjaśnienia znajdują się w dokumentacji Wskazówki dotyczące zapytań .

To, co SQL Server robi przy pierwszym uruchomieniu procedury składowanej, to optymalizacja planów wykonania dla parametrów, które zostały do ​​niego przekazane. Odbywa się to w procesie zwanym Parameter Sniffing .

Ogólnie plany wykonania są buforowane przez SQL Server, dzięki czemu SQL Server nie musi za każdym razem ponownie kompilować tego samego zapytania. Przy następnym uruchomieniu procedury SQL Server ponownie użyje planu(ów) wykonania dla zawartych w nim zapytań... Jednak plany wykonania mogą być całkowicie nieefektywne, jeśli wywołasz je z innymi parametrami .

Opcja, którą ci dałem, powie kompilatorowi SQL, że plan wykonania nie powinien być optymalizowany pod konkretne parametrów, ale raczej dla dowolnych parametr, który jest przekazywany do procedury składowanej.

Aby zacytować dokumentację:

W niektórych przypadkach procedury składowane mogą korzystać z funkcji wykrywania parametrów, w niektórych nie. W przypadku procedur składowanych, które nie korzystają z funkcji wykrywania parametrów, możesz dodać opcję do każdego zapytania, które używa dowolnego z parametrów procedury składowanej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zdarzenia oczekiwania serwera SQL -2

  2. Jak przyciąć ciąg w SQL Server przed 2017 rokiem?

  3. Błąd składni w pobliżu „z” w warunku wyszukiwania pełnotekstowego „kontrola z”

  4. 4 wskazówki dotyczące uruchamiania diagnostyki SQL Server

  5. Sortuj według liczby nie sortuje poprawnie - SQL (MS Access 2007)