DBA senior saya memberi tahu saya bahwa eksekusi SQL Query secara default tidak mengunci tabel.
Saya mengalami beberapa masalah dengan laporan SQL Server Reporting Services (SSR) yang sepertinya mendapatkan beberapa masalah dengan penguncian dan mendapatkan beberapa kesalahan.
Saya melakukan beberapa Googling tetapi gagal menemukan apa pun.
Apakah laporan SSR mengunci tabel yang sedang ditanyai?
Apakah ada dokumentasi MSDN yang mendokumentasikan perilaku ini secara khusus?
sql-server-2008
locking
melaos
sumber
sumber
SET TRANSACTION ISOLATION LEVEL
misalnyaREAD UNCOMMITTED
jika Anda tidak keberatan mengambil risiko beberapa pembacaan kotor.Jawaban:
Jawaban singkat: Tidak
Lebih lama ...
SQL Server tidak tahu bahwa itu SSR yang mengirimkan kueri. Jadi kueri dari SSRS akan berjalan seperti kueri lainnya.
Kemungkinan besar pengoptimal kueri memutuskan untuk menggunakan kunci tabel untuk kueri SSR. tentu saja, itu bisa menjadi masalah yang berbeda, tapi itu pertanyaan yang berbeda
sumber
Ini benar. Namun, itu tidak berarti permintaan tidak dapat mengunci tabel.
SSRS mendapatkan data yang digunakan untuk membuat laporan dengan menjalankan kueri atau prosedur tersimpan terhadap database.
Kueri ini ditentukan oleh pengembang, dan mungkin pada akhirnya mengunci tabel (atau tabel), tergantung pada tingkat isolasi dan berapa banyak baris yang terlibat. (Bahkan, mungkin ada kasus di mana Anda ingin melakukan ini dengan sengaja .) Intinya adalah terserah pengembang bagaimana penguncian bekerja untuk kueri. SSR tidak dapat menyelesaikan masalah ini untuk Anda. Itu sebabnya tidak ada dokumentasi.
Pertimbangkan (misalnya):
READ UNCOMMITTED
jika bacaan kotor tidak apa-apasumber
Bagaimana Anda tahu bahwa ada kunci ketika laporan sedang berjalan? Saya menyarankan Anda untuk memeriksa kueri / simpanan tersimpan yang merupakan sumber laporan dan memastikannya berfungsi dengan baik.
Jika Anda yakin kueri sumber berfungsi dengan baik, cobalah untuk menunjukkan masalah dengan menggunakan profiler server SQL. Tautan di bawah ini mungkin membantu:
/programming/9107383/sql-server-profiler-capture-calls-to-your-databases-stored-procs-during-ssrs
sumber