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.