MSSQLSERVER_2814
Berlaku untuk:SQL Server
Detail
Atribut | Nilai |
---|---|
Nama Produk | SQL Server |
ID Peristiwa | 2814 |
Sumber Kejadian | MSSQLSERVER |
Komponen | SQLEngine |
Nama Simbolis | PR_POSSIBLE_INFINITE_RECOMPILE |
Teks Pesan | Kemungkinan kompilasi ulang tak terbatas terdeteksi untuk SQLHANDLE %hs, PlanHandle %hs, memulai offset %d, mengakhiri offset %d. Alasan kompilasi ulang terakhir adalah %d. |
Penjelasan
Satu atau beberapa pernyataan menyebabkan batch kueri kompilasi ulang setidaknya 50 kali. Pernyataan yang ditentukan harus dikoreksi untuk menghindari kompilasi ulang lebih lanjut.
Tabel berikut mencantumkan alasan kompilasi ulang.
Kode alasan | Deskripsi |
---|---|
1 | Skema berubah |
2 | Statistik berubah |
3 | Kompilasi yang ditangguhkan |
4 | Opsi atur diubah |
5 | Tabel sementara diubah |
6 | Set baris jarak jauh diubah |
7 | Untuk Menelusuri izin yang diubah |
8 | Lingkungan pemberitahuan kueri berubah |
9 | Tampilan partisi berubah |
10 | Opsi kursor berubah |
11 | Opsi (kompilasi ulang) diminta |
Tindakan Pengguna
Tampilkan pernyataan yang menyebabkan kompilasi ulang dengan menjalankan kueri berikut. Ganti tempat penampung sql_handle, starting_offset, ending_offset, dan plan_handle dengan nilai yang ditentukan dalam pesan kesalahan. Kolom database_name dan object_name adalah NULL untuk ad hoc dan pernyataan Transact-SQL yang disiapkan.
SELECT DB_NAME(st.dbid) AS database_name, OBJECT_NAME(st.objectid) AS object_name, st.text FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text (0x01000600B74C2A1300D2582A2100000000000000000000000000000000000000000000000000000000000000 /* replace the 0x01000600B... value with the actual sql_handle*/) AS st WHERE qs.statement_start_offset = 123 /*replace 123 with actual starting_offset value*/ AND qs.statement_end_offset = 456 /*replace 456 with actual ending_offset value*/ AND qs.plan_handle = 0x06000100A27E7C1FA821B10600 /*replace 0x06000100A27E7C1FA821B10600with actual plan_handle value*/;
Berdasarkan deskripsi kode alasan, ubah pernyataan, batch, atau prosedur untuk menghindari kompilasi ulang. Misalnya, prosedur tersimpan mungkin berisi satu atau beberapa pernyataan SET. Pernyataan ini harus dihapus dari prosedur. Untuk contoh tambahan penyebab dan resolusi kompilasi ulang, lihat Masalah Kompilasi Batch, Kompilasi Ulang, dan Penembolokan Paket di SQL Server 2005.
Jika masalah berlanjut, hubungi Layanan Dukungan Pelanggan Microsoft.
Lihat Juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk