Bagikan melalui


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

  1. 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*/;
    
  2. 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.

  3. Jika masalah berlanjut, hubungi Layanan Dukungan Pelanggan Microsoft.

Lihat Juga

SQL:Kelas Peristiwa StmtRecompile