Saya telah menangkap rencana permintaan aktual untuk permintaan tertentu.
Setelah ini, saya telah mengubah beberapa hal di sekitar (termasuk memperbarui statistik) dan menjalankan kembali permintaan tertentu. Sekarang rencana kueri yang sebenarnya berbeda (yang masuk akal).
Permintaan sekarang berjalan jauh lebih cepat. Saya ingin tahu apakah rencana eksekusi baru ada hubungannya dengan ini, karena perubahan lain (perubahan pada pengaturan IO, pengaturan VM, restart contoh sql, dll) juga dapat menyebabkan peningkatan kinerja. Untuk menguji ini saya ingin menjalankan kueri sekali lagi, dan mencoba untuk memaksa SQL Server untuk menggunakan paket eksekusi yang lama.
Pertanyaan : apakah ada cara untuk menjalankan kembali kueri dengan rencana eksekusi yang disediakan pengguna, atau bahkan menjalankan kueri langsung dari rencana tersebut?
Inilah yang saya coba untuk mencari tahu ini:
- Saya telah mencari di buku-buku yang kami miliki di kantor ( Professional SQL Server 2012 Internal dan Pemecahan Masalah , Querying Microsoft SQL Server 2012 );
- Google mencari, misalnya "menjalankan kueri berdasarkan rencana kueri tertentu"
- Pencarian DBA.SE, misalnya "jalankan rencana permintaan" dan "jalankan kembali rencana eksekusi"
- Dan akhirnya, salah satu yang telah menjawab pertanyaan saya berkali-kali sebelumnya: periksa dengan hati-hati "Pertanyaan yang mungkin sudah memiliki jawaban Anda" sebelum menekan "Kirim pertanyaan Anda" :-)
Jadi intinya: apakah ini mungkin? Jika demikian: bagaimana?
Jawaban:
Iya.
Anda butuh
USE PLAN
petunjuk.Di mana Anda memasok
XML
dari paket pertama.Sementara itu tidak menjamin bahwa rencana itu akan persis sama (misalnya operator skalar komputasi dapat bergerak misalnya), kemungkinan akan cukup dekat.
sumber