FIX: Query dengan tingkat isolasi transaksi yang ditetapkan untuk membaca tidak terikat gagal dengan kesalahan 601

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 815008 - Melihat produk di mana artikel ini berlaku.
BUG #: 363988 (SHILOH_BUGS)
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Ketika permintaan berjalan dengan transaksi yang isolasi tingkat set untuk tidak membaca terikat, SQL Server 2000 aborts query dan kembali berikut pesan galat:

Server: Msg 601, tingkat 12, negara 3, Jalur 14
Tidak bisa melanjutkan pemindaian dengan NOLOCK karena ke data gerakan.

PENYEBAB

Perilaku ini dapat terjadi ketika sebuah baris pada tabel dihapus antara waktu SQL Server membaca lokasi baris dari indeks dan waktu SQL Server fetches baris.

PEMECAHAN MASALAH

Informasi paket layanan

Untuk memecahkan masalah ini, Dapatkan terbaru paket layanan Microsoft SQL Server 2000. Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel dalam Pengetahuan Microsoft Base:
290211 Cara mendapatkan paket layanan SQL Server 2000

Informasi hotfix

Versi bahasa Inggris dari perbaikan terbaru ini memiliki file atribut (atau atribut berkas yang lebih baru) yang didaftar di dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas ini tercantum dalam waktu universal terkoordinasi (UTC). Apabila Anda melihat informasi berkas, tanggal akan diubah ke waktu lokal. Pada menemukan perbedaan waktu UTC dan waktu lokal, gunakan Waktu Zona tab pada alat tanggal dan waktu dalam Panel kontrol.
Date		Time	Version		Size		 File name
-----------------------------------------------------------------------------

07-Feb-2003	16:14			  786,432 bytes  Distmdl.ldf
07-Feb-2003	16:14			2,359,296 bytes  Distmdl.mdf
29-Jan-2003	12:25			      180 bytes  Drop_repl_hotfix.sql
31-Jan-2003	11:02	2000.80.763.0	1,557,052 bytes	 Dtsui.dll     
29-Jan-2003	15:48			  746,470 bytes  Instdist.sql
29-Jan-2003	12:25	                    1,402 bytes  Inst_repl_hotfix.sql
07-Feb-2003	17:10	2000.80.765.0      90,692 bytes  Msgprox.dll  
29-Jan-2003	11:48	7.0.9466.0        344,064 bytes  Msvcr70.dll      
29-Jan-2003	11:48	2000.80.722.0      57,904 bytes  Osql.exe         
07-Feb-2003	14:23                   1,065,895 bytes  Replmerg.sql
07-Feb-2003	17:10	2000.80.765.0	  221,768 bytes  Replprov.dll     
07-Feb-2003	17:10	2000.80.765.0     307,784 bytes  Replrec.dll      
29-Jan-2003	15:48		   	1,084,318 bytes  Replsys.sql
29-Jan-2003	11:48	2000.80.534.0	  127,548 bytes  Sqdedev.dll    
07-Feb-2003	17:10	2000.80.765.0	  176,696 bytes  Sqlmap70.dll  
07-Feb-2003	17:10	2000.80.765.0	   57,920 bytes  Sqlrepss.dll    
14-Feb-2003	13:22	2000.80.769.0   7,512,145 bytes  Sqlservr.exe   
29-Jan-2003	11:48	2000.80.194.0     180,290 bytes  Sqlunirl.dll     
07-Feb-2003	17:10	2000.80.765.0      45,644 bytes  Sqlvdi.dll   
07-Feb-2003	17:10	2000.80.765.0      82,492 bytes  Ssnetlib.dll     
				
Catatan File dependensi, perbaikan terbaru yang terbaru atau fitur yang berisi file juga berisi tambahan file.


STATUS

Microsoft telah mengkonfirmasi bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana didaftar di bagian "Berlaku untuk".Masalah ini diperbaiki pertama kali pada Microsoft SQL Server 2000 Paket Layanan 4.

INFORMASI LEBIH LANJUT

Setelah Anda menginstal perbaikan terbaru, Anda dapat menggunakan jejak bendera 9134 untuk mengubah perilaku SQL Server. Untuk mengaktifkan jejak bendera 9134 sehingga diaktifkan pada setiap kali SQL Server dimulai, Tambahkan bendera jejak sebagai startup SQL Server parameter. Untuk menambahkan jejak bendera 9134 sebagai parameter startup SQL Server, ikuti langkah-langkah berikut:
  1. Dalam SQL Server Enterprise Manager, klik kanan server yang menjalankan SQL Server, dan kemudian klikProperti.
  2. Pada General tab, klik Permulaan Parameter.
  3. Dalam Parameter kotak teks, ketik-T9134, klik Tambahkan, lalu klikOke.
  4. Dalam SQL Server Properties(Configure)-Server Nama> kotak dialog, klik Oke.
  5. Restart layanan SQL Server untuk parameter baru untuk mengambil efek.
Sebagai alternatif, Anda dapat menjalankan query berikut dalam permintaan Analyzer secara dinamis mengubah pada bendera jejak:
DBCC TRACEON (9134, -1)
Namun, jika Anda tidak menambahkan jejak bendera 9134 sebagai startup parameter, efek dari perintah DBCC TRACEON hilang ketika layanan SQL Server restart.

Ketika jejak bendera 9134 diaktifkan dan turut dihapus atau diubah antara waktu SQL Server membaca lokasi baris dan waktu itu memiliki baris melalui lookup penunjuk, pertanyaan tidak akan membatalkan atau kembali kesalahan 601. Sebaliknya, SQL Server mengabaikan baris yang tidak dapat terletak dan terus memindai baris tambahan yang memenuhi kriteria pencarian. Oleh karena itu, eksekusi query berlanjut; Namun, hasil SQL Server hasil mungkin tidak termasuk baris yang telah dihapus atau dipindahkan selama query eksekusi.

Catatan Informasi dalam artikel ini dan jejak bendera hanya berlaku untuk permintaan yang sedang dijalankan dengan tingkat isolasi transaksi ditetapkan untuk Baca TIDAK TERIKAT. Informasi tidak berlaku untuk permintaan yang dijalankan dengan NOLOCK Pengoptimal petunjuk. Dalam hal ini, perilaku tetap tidak berubah dari apa dijelaskan di bagian "Gejala".

Juga, bendera jejak tidak mempengaruhi fakta bahwa inkonsistensi lain kesalahan dan data dapat terjadi ketika membaca data tidak terikat. Untuk informasi lebih lanjut tentang tingkat isolasi didukung oleh SQL Server dan efek menggunakan setiap tingkat isolasi, melihat "Penguncian" topik dalam SQL Server buku Online.

Microsoft tidak merekomendasikan penggunaan bendera jejak kecuali semua berikut berlaku:
  • Aplikasi digunakan memerlukan tidak membaca terikat tingkat isolasi.
  • Aplikasi digunakan mengalami sejumlah besar 601 kesalahan.
  • Anda memahami bahwa ketika Anda menggunakan bendera jejak, baris yang telah dihapus atau dipindahkan selama query eksekusi diabaikan.
Catatan Sebelum Anda menggunakan tingkat isolasi membaca tidak terikat, Anda harus memahami fungsi. Untuk informasi lebih lanjut tentang tidak membaca terikat isolasi tingkat, kunjungi Website Microsoft Developer Network (MSDN) berikut situs:
http://msdn2.Microsoft.com/en-us/library/ms171885.aspx

REFERENSI

Untuk informasi tambahan, klik berikut nomor artikel untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
235880INF: Optimizer petunjuk NOLOCK atau tingkat isolasi baca tidak terikat menghasilkan kesalahan 605
Untuk informasi lebih lanjut, kunjungi Website MSDN berikut situs:
Pemecahan Masalah Kesalahan 601
.aspx http://msdn2.Microsoft.com/en-us/library/aa258726 (SQL.80)
SET TINGKAT ISOLASI TRANSAKSI
.aspx http://msdn2.Microsoft.com/en-us/library/aa259216 (SQL.80)

Properti

ID Artikel: 815008 - Kajian Terakhir: 04 Oktober 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
Kata kunci: 
kbhotfixserver kbqfe kbsqlserv2000presp4fix kbbug kberrmsg kbfix kbmt KB815008 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:815008

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