CARA: Menggunakan KEEPFIXED rencana untuk menonaktifkan disimpan prosedur Recompilations

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 276220 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Dalam beberapa situasi di mana disimpan prosedur recompiled, biaya recompilation mungkin lebih besar daripada manfaat yang berasal dari melakukannya. Catatan bahwa karena SQL Server Service Pack 2 (SP2) dan sebelumnya tidak mendukung pernyataan tingkat recompilation, seluruh disimpan prosedur harus recompiled ketika mengkompilasi ulang dipicu. Oleh karena itu, jumlah recompiles yang dipicu selama pelaksanaan prosedur yang disimpan dan panjang prosedur yang tersimpan mungkin kadang-kadang meningkatkan durasi keseluruhan pelaksanaan prosedur yang tersimpan.

Dimulai pada SQL Server 7.0 SP3, sedikit permintaan baru, KEEPFIXED RENCANA, telah diperkenalkan untuk membantu dalam situasi di mana biaya recompilation adalah lebih dari biaya menggunakan rencana yang ada.

The KEEPFIXED RENCANA permintaan petunjuk pasukan query optimizer untuk tidak pernah mengkompilasi ulang permintaan perubahan dalam statistik atau diindeks kolom perubahan (misalnya, update, delete, atau sisipkan). Untuk informasi tambahan tentang cara memecahkan recompilation prosedur yang tersimpan, klik nomor artikel berikut ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
243586INF: Recompilation disimpan prosedur pemecahan masalah

Kode contoh yang menggunakan KEEPFIXED rencana petunjuk

Contoh kode di bagian ini adalah dari artikel Basis Pengetahuan Microsoft berikut:
243586 INF: Recompilation disimpan prosedur pemecahan masalah
   drop procedure RowModifications 
   go
   create procedure RowModifications as
   -- assume SomeTable exists with the same definition as #t, 
   -- and has over 1000 rows
   create table  #t (a int )
   select * from  #t
   insert  #t select * from retest
   select count(*) from #t  where a = 37
   --option (keepfixed plan)
   go
   exec RowModifications
   go
   exec RowModifications
   go 
 
				
Untuk pelaksanaan kedua RowModifications prosedur, kode berikut menyebabkan recompilation:
  select count(*) from #t where a = 37
				
Jika Anda menggunakan kode ini:
Option (keepfixed plan)
				
Dalam permintaan ini, permintaan tidak menyebabkan recompilation lagi:
select count(*) from #t  where a = 37 option (keepfixed plan) 
				
Catatan Tanda-tanda permintaan ini diterapkan pada tingkat pernyataan dan tidak mempengaruhi cakupan seluruh disimpan prosedur. Jika Anda ingin pilihan ini untuk mempengaruhi banyak pernyataan pada prosedur yang disimpan, setiap pernyataan harus menerapkan petunjuk yang SQL Server menerapkan perilaku. Petunjuk ini tidak tersedia untuk SQL Server 7.0 Paket Layanan 2 (SP2) atau sebelumnya.

Properti

ID Artikel: 276220 - Kajian Terakhir: 23 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
Kata kunci: 
kbhowtomaster kbinfo kbmt KB276220 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:276220

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com