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

Планове за SQL Server:разлика между сканиране на индекс / търсене на индекс

При сканиране на индекс SQL сървърът чете целия индекс, търсейки съвпадения – времето, което отнема, е пропорционално на размера на индекса.

Търсенето на индекс е мястото, където SQL сървърът използва b-дървовидната структура на индекса, за да търси директно към съответстващи записи (вижте http://mattfleming.com/node/192 за идея как работи това) - необходимото време е само пропорционално на броя на съвпадащите записи.

  • По принцип търсенето в индекс е за предпочитане пред сканирането в индекс (когато броят на съвпадащите записи е пропорционално много по-малък от общия брой записи), тъй като времето, необходимо за извършване на търсене в индекс, е постоянно, независимо от общия брой на записи във вашата таблица.
  • Имайте предвид обаче, че в определени ситуации сканирането на индекс може да бъде по-бързо от търсенето в индекс (понякога значително по-бързо) - обикновено когато таблицата е много малка или когато голям процент от записите съвпадат с предиката.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSRS:Как да добавите опцията Всички към падащия филтър на SSRS?

  2. Функции за класиране в SQL Server

  3. sp_dropserver и sp_addserver не работят

  4. Как да намеря съхранени процедури по име?

  5. Защо това е сканиране на индекс, а не търсене на индекс?