Saya menggunakan SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
sebagian besar pertanyaan SQL umum saya, terutama karena ini dibor kepada saya ketika awalnya belajar bahasa.
Dari pemahaman saya, level isolasi ini bertindak dengan cara yang sama yang WITH (NO LOCK)
bagaimanapun saya cenderung gunakan SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
.
- Apakah pernah ada waktu yang saya harus menggunakan
WITH (NO LOCK)
lebihSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
. - Apakah
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
menghentikan pengguna lain agar tidak dikunci dari tabel yang saya baca? - Jika
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
digunakan untuk menghentikan kunci, tetapi saya hanya membaca data, apa gunanya menggunakannya? Apakah hanya kueri intensif sistem yang akan menghasilkan kunci? Apakah layak menggunakannya ketika menjalankan kueri yang akan kembali dalam mengatakan, 5-10 detik? - Saya telah diberitahu untuk tidak menggunakan
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
ketika membaca data yang akan digunakan dalam pembaruan, mungkin untuk menghindari memperbarui data kotor. Apakah ini satu-satunya alasan? - Dengan jenis database yang saya kerjakan, ada lingkungan produksi dan pengujian. Kami sangat jarang akan menanyakan lingkungan produksi tetapi ketika saya perlu, saya biasanya akan menggunakan
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
dalam permintaan saya. Saya mengerti bahwa pembacaan yang kotor mungkin dilakukan dengan ini. Selain menerima data kembali yang mungkin tidak berkomitmen untuk database (dan karena itu membuang hasil saya) apa jenis 'membaca kotor' apa yang mungkin?
Maaf atas pertanyaan massal.
READ UNCOMMITTED
mana-mana, dengan cara yang sama persis seperti saya tidak akan menggunakan di WITH (NOLOCK)
mana-mana (mereka pada dasarnya adalah hal yang sama) blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere