Niedawno zaktualizowaliśmy nasz serwer z SQL Server 2008R2 do SQL Server 2014. Mamy zapytanie, które działało dobrze w 2008R2, ale teraz w 2014 działa bardzo dużo wolniej i ma zły plan wykonania.
Zrobiłem kilka testów ...
- Przełącz DB 2014 z powrotem do trybu zgodności 2008/2012.
- Przetestuj zapytanie za pomocą paginacji.
Oba spowodowały, że zapytanie działało tak samo, jak miało to miejsce i szybko jak SQL Server 2008R2.
Dlaczego plan jest tak zły, a kwerenda działa tak długo w programie SQL Server 2014?
Ten obraz pokazuje 2 zapytania, jedno z użyciem numeru początkowego tak, jak działało w 2008R2, a drugie to poprawka z paginacją. Oba działały w 2014 r., Oba bardzo się różniły, ale w 2008 r. Widzimy takie same wyniki, jak w 2014 r.