Paket Permintaan Mengubah Kinerja Lebih Buruk di SQL Server 2014

10

Kami baru-baru ini memutakhirkan server kami dari SQL Server 2008R2 ke SQL Server 2014. Kami memiliki kueri yang berjalan dengan baik di 2008R2 tetapi sekarang pada 2014 berjalan jauh lebih lambat dan memiliki rencana eksekusi yang buruk.

Saya sudah melakukan beberapa tes ...

  1. Ganti DB 2014 ke mode kompatibilitas 2008/2012.
  2. Uji kueri menggunakan Pagination.

Keduanya menghasilkan kueri yang menjalankan hal yang sama dan cepat seperti SQL Server 2008R2.

Mengapa paket ini sangat buruk dan permintaan berjalan sangat lama di SQL Server 2014?

Estimasi / Aktual

Gambar ini menunjukkan 2 kueri, satu menggunakan rownumber cara dijalankan di 2008R2, dan yang kedua adalah perbaikan dengan pagination. Keduanya berjalan pada 2014, keduanya sangat berbeda, tetapi pada 2008 kami melihat kinerja yang sama seolah-olah kami menggunakan pagination pada 2014.

Jeff
sumber

Jawaban:

7

Ini bukan masalah, itu adalah desain dan dianggap sebagai peningkatan kinerja.

Jika pertanyaan Anda tidak berjalan seperti yang diharapkan, Anda perlu mengatasinya dalam kode basis data / aplikasi Anda.

Anda dapat memaksa penaksir kedagingan lama dengan menggunakan jejak jejak 9481 di server, sesi, atau tingkat permintaan (menggunakan OPTION (QUERYTRACEON 9481)). Ini akan memaksanya tidak peduli apa tingkat kompatibilitas database.

Ada juga banyak informasi yang diposting oleh Tim CSS di sini .

Posting yang lebih rinci pada Cardanility Estimator dan perubahan di sekitar proses itu di SQL Server 2014, termasuk contoh.

Paul White 9
sumber
Itu terdengar seperti alasan yang buruk untuk sesuatu yang tidak beres
dvdmn