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

SQL Server 2005 buforował plan wykonania, który nigdy nie zadziałał

Być może zainteresuje Cię Pierwsza zasada programowania .

Indeks klastrowy zawsze zawiera wszystkie wiersze. Może być zamówiony przez z , ale nadal będzie zawierać wszystkie inne kolumny na poziomie liścia.

Powodem, dla którego SQL Server czasami preferuje skanowanie klastrowe niż wyszukiwanie indeksu, jest ten. Kiedy wykonujesz wyszukiwanie indeksu, musisz po nim wykonać wyszukiwanie zakładek do indeksu klastrowego, aby pobrać kolumny, których nie ma w indeksie.

Podczas skanowania indeksu klastrowego z definicji można znaleźć wszystkie kolumny. Oznacza to, że nie jest wymagane wyszukiwanie zakładek.

Gdy SQL Server oczekuje wielu wierszy, stara się unikać wyszukiwania zakładek. To sprawdzony wybór. Wyszukiwanie indeksów nieklastrowanych jest rutynowo niszczone przez skanowanie indeksów klastrowych.

Możesz to przetestować w swoim przypadku, wymuszając albo za pomocą with (index(IX_YourIndex)) podpowiedź do zapytania .




  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, pytania o join

  2. Jak działa funkcja TRANSLATE() w programie SQL Server (T-SQL)

  3. Jak przekształcić wiersze w kolumny w serwerze sql 2005?

  4. Przedstawiamy nową funkcję:Zawsze włączona grupa dostępności

  5. Łączenie wielu wierszy w jeden i dołączanie kolumn w zależności od liczby wierszy