Kapan SQL Server mendapatkan kunci?

10

Daftar tingkat isolasi dalam SQL Server yang ditemukan di sini menyatakan bahwa kunci tulis yang diperoleh dalam suatu transaksi dipertahankan hingga akhir transaksi. Namun tidak disebutkan apa-apa tentang kapan kunci ini diperoleh.

Apakah kunci secara default diperoleh pada awal transaksi, atau tepat ketika dibutuhkan? Jika yang terakhir benar, apakah karena itu akan menguntungkan dalam transaksi besar untuk melakukan operasi tulis selambat mungkin untuk meminimalkan jumlah waktu yang X kunci ditahan?

Levi Botelho
sumber

Jawaban:

5

Apakah kunci secara default diperoleh pada awal transaksi, atau tepat ketika dibutuhkan?

Kunci diperoleh segera sebelum membaca atau menulis terjadi. Tergantung pada granularity penguncian yang dipilih oleh mesin penyimpanan, kunci dapat diperoleh pada tingkat baris, halaman, partisi, atau objek (tabel).

Jika yang terakhir benar, apakah karena itu akan menguntungkan dalam transaksi besar untuk melakukan operasi tulis selambat mungkin untuk meminimalkan jumlah waktu yang X kunci ditahan?

Ya, itu mungkin menguntungkan untuk konkurensi, tergantung pada tingkat isolasi yang digunakan oleh transaksi bersamaan.

Bacaan terkait:

Paul White 9
sumber