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

Dlaczego w moim planie egzekucji pojawia się jakiś rodzaj?

SQL Server ma do wyboru trzy algorytmy, gdy musi połączyć dwie tabele. Łączenie zagnieżdżonych pętli, łączenie mieszające i łączenie scalane sortowania. Który wybiera, opiera się na kosztorysach. W tym przypadku uznał, że na podstawie dostępnych informacji, sortowanie-scalanie jest właściwym wyborem.

W planach wykonania SQL Server operacja Sort-Merge jest dzielona na dwa operatory, Sort i Merge-Join, ponieważ operacja sortowania może nie być konieczna, na przykład jeśli dane są już posortowane.

Więcej informacji na temat złączeń znajdziesz tutaj:http://sqlity.net/pl/1146/a-do-do-do-dni-wprowadzenie/ Artykuł o Sort-Merg-Join jest tutaj:http://sqlity.net/en/1480/a-join-a-day-the-sort-merge-join/

Aby Twoje zapytanie było szybsze, najpierw przyjrzę się indeksom. W zapytaniu znajduje się kilka skanowań indeksu klastrowego. Jeśli możesz zastąpić kilka z nich zabiegami, najprawdopodobniej będziesz lepszy. Sprawdź również, czy szacunki, które generuje SQL Server, są zgodne z rzeczywistą liczbą wierszy w rzeczywistym planie wykonania. Jeśli są daleko, SQL Server często dokonuje złych wyborów. Tak więc zapewnienie lepszych statystyk może również pomóc w wydajności zapytań.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozdzielana przecinkami lista wierszy kolumny z grupowaniem według innych kolumn

  2. Różnica między transakcją niejawną a jawną

  3. określenie zestawu znaków tabeli/bazy danych?

  4. Komunikat 203, poziom 16, stan 2, nie jest prawidłowym identyfikatorem

  5. Model odzyskiwania zmian SQL Server