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

jak sprawdzić, czy zapytanie korzysta z indeksu

W rzeczywistości jest to trudniejsze niż się wydaje - typowy nowoczesny DBMS (a MS SQL Server nie jest wyjątkiem) czasami wykonuje pełne skanowanie tabeli, nawet jeśli indeks jest dostępny, po prostu dlatego, że może to być szybsze na małych ilościach danych.

Przykład:

Co więcej, na decyzję podejmowaną przez DBMS może mieć wpływ to, jak świeże/dokładne statystyki są.

Najbardziej wiarygodnym testem na to, czy indeks jest używany, jest po prostu wypełnienie bazy danych reprezentatywnymi ilościami danych i następnie spójrz na plan wykonania . I nie zapomnij zmierzyć czasu rzeczywistego wykonania zapytania, kiedy już to robisz!

Uproszczony przykład:jeśli cała tabela mieści się na jednej stronie bazy danych, szybciej jest po prostu załadować tę stronę i przejść przez nią sekwencyjnie, niż czekać na dodatkowe I/O dla strony zawierającej indeks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt SQL Server 2008 do usuwania ograniczenia PK, który ma nazwę wygenerowaną przez system

  2. Jak wybrać datę bez czasu w SQL

  3. SQL Server:funkcje z wartościami przechowywanymi w tabeli a procedury składowane

  4. Wykonywanie procedury składowanej przy użyciu Harmonogramu zadań systemu Windows

  5. Używanie SQL Server jako magazynu obrazów