Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изберете ред за оценяване на клауза where

Няма гаранции за поръчката на оценка. Оптимизаторът ще се опита да намери най-ефективния начин за изпълнение на заявката, като използва наличната информация.

Във вашия случай, тъй като c е индексиран, а d не е, оптимизаторът трябва да погледне в индекса, за да намери всички редове, които съответстват на предиката на c, след което да извлече тези редове от данните в таблицата, за да оцени предиката на d.

Въпреки това, ако установи, че индексът на c не е много селективен (въпреки че не във вашия пример, колона за пол рядко се индексира полезно), може да реши да направи сканирането на таблицата въпреки това.

За да определите реда на изпълнение, трябва да получите план за обяснение на вашата заявка. Имайте предвид обаче, че този план може да се промени в зависимост от това какво според оптимизатора е най-добрата заявка в момента.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка sql с невалидно име на колона

  2. Как да генерирам минутни интервали между две дати в T-SQL?

  3. SQL Server:Msg 102, ниво 15, състояние 1, ред 2 Неправилен синтаксис близо до '='

  4. Стойностите на колоната за идентичност на SQL сървъра започват от 0 вместо от 1

  5. Асинхронни тригери в SQL Server 2005/2008