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

Wybierz, gdzie kolejność oceny klauzuli

Nie ma gwarancji na kolejność oceny. Optymalizator spróbuje znaleźć najbardziej efektywny sposób wykonania zapytania, korzystając z dostępnych informacji.

W twoim przypadku, ponieważ c jest indeksowane, a d nie, optymalizator powinien zajrzeć do indeksu, aby znaleźć wszystkie wiersze, które pasują do predykatu c, a następnie pobrać te wiersze z danych tabeli, aby ocenić predykat na d.

Jeśli jednak ustali, że indeks c nie jest zbyt selektywny (chociaż nie w twoim przykładzie, kolumna płci jest rzadko indeksowana), może mimo to zdecydować się na skanowanie tabeli.

Aby określić kolejność wykonania, powinieneś otrzymać plan wyjaśnienia dla swojego zapytania. Należy jednak pamiętać, że ten plan może się zmienić w zależności od tego, co optymalizator uzna za najlepsze zapytanie w tej chwili.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możesz wywołać usługę internetową z kodu TSQL?

  2. Nie można połączyć pyODBC z SQL Server 2008 Express R2

  3. Błąd HTTP 404.0 nie został znaleziony podczas eksportu z raportu kryształowego

  4. Mała tabliczka SQL zaalokowana w pamięci

  5. Migawki bazy danych programu SQL Server -1