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

Uruchomienie tego samego zapytania SQL w jednej bazie danych trwa dłużej niż w innej bazie danych na tym samym serwerze

Fakt, że masz dwie bazy danych na tym samym serwerze i z tym samym zestawem danych (jak powiedziałeś) nie zapewnia tego samego planu wykonania.

Oto kilka powodów, dla których plan zapytań może się różnić:

  • Pliki mdf i ldf (dla każdej bazy danych) znajdują się na różnych dyskach. Jeśli onedrives jest szybsze, ta baza danych również szybciej wykona zapytanie.
  • statystyki opóźnione. Jeśli masz jedną bazę danych z nowszymi statystykami niż druga, SQL ma większe szanse na wybranie właściwego (i
    szybszego) planu wykonania.
  • Indeksy:wiem, że powiedziałeś, że oba są identyczne, ale sprawdziłbym, czy masz ten sam typ indeksów na obu.

Skoncentruj się na zobaczeniu, dlaczego zapytanie działa wolno lub zobacz rzeczywisty plan wykonania, zamiast porównywać. Sprawdzenie rzeczywistego planu wykonania dla powolnego zapytania da wskazówkę, dlaczego działa wolniej.

Ponadto nie dodawałbym instrukcji NO LOCK, aby rozwiązać problem. Z mojego doświadczenia wynika, że ​​większość powolnych zapytań można dostroić za pomocą kodu lub indeksu, zamiast dodawać wskazówkę NO LOCK, która może spowodować zmodyfikowane lub stare zestawy wyników, w zależności od transakcji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie SQL Server wybierz 1 z każdej podgrupy

  2. Jak napisać zapytanie SQL dla określonego zakresu dat i godziny przy użyciu programu SQL Server 2008?

  3. Usuń profil poczty bazy danych (SSMS)

  4. SQL Server Management Studio – wskazówki dotyczące usprawnienia procesu kodowania TSQL

  5. Używanie JDBC, gdy nazwa serwera zawiera ukośnik odwrotny (localhost\TESTDATA)