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

Alternatywa dla używania zmiennych lokalnych w klauzuli where

Korzystanie ze zmiennych lokalnych filtr WHERE powoduje PEŁNE SKANOWANIE TABELI. Ponieważ SS nie zna wartości zmiennych lokalnych w czasie kompilacji. Tworzy więc plan wykonania w największej skali, która może być dostępna dla kolumny.

Aby zapobiec problemom z wydajnością, SS musi znać wartości zmiennych w czasie kompilacji. Definiowanie SP i przekazywanie tych zmiennych lokalnych jako parametru jest jednym z rozwiązań problemu. Innym rozwiązaniem jest użycie sp_executesql i ponownie przekazując te zmienne lokalne jako parametr...

Możesz też dodać OPCJA (REKOMPILUJ) na końcu instrukcji sql, aby skompilować lokalne zmienne. To rozwiąże problem wydajności.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dostaję komunikat Podjęto próbę załadowania programu z niepoprawnym błędem formatu w projekcie replikacji programu SQL Server

  2. Jak załadować ogromny (ale prosty) hierarchiczny plik XML do tabeli SQL?

  3. Jak dynamicznie wpisać nazwę atrybutu do zapytania wybierającego?

  4. Naruszenie ograniczenia UNIQUE KEY na INSERT WHERE COUNT(*) =0 w SQL Server 2005

  5. Utwórz zadanie agenta serwera SQL za pomocą programu SSMS