Sorunun durumunu yeniden oluşturmaya çalıştım [1]. masa, alınan ve eklentiyi site verilerle dolu "İzolasyon (veritabanı sistemleri)" OnSQL Server'da kilitleme davranışını anlama
[2] SQL Server 2008 R2 ssms içinde
, ben idam:
1) ilk giren ilk sekmede (pencere) ikinci pencerede hemen sonra SSMS
-- transaction isolation level in first window does not influence results (?)
-- initially I thought that second transaction in 2) runs at the level set in first window
begin transaction
INSERT INTO users VALUES (3, 'Bob', 27)
waitfor delay '00:00:22'
rollback
2), bir
-- this is what I commented/uncommented
-- set transaction isolation level SERIALIZABLE
-- set transaction isolation level READ REPEATABLE
-- set transaction isolation level READ COMMITTED
-- set transaction isolation level READ UNCOMMITTED
SELECT * FROM users --WITH(NOLOCK)
Güncellenme:
Üzgünüm, sonuçlar düzeltildi.
Benim sonuçları, 2 bölgesinde yer yalıtım düzeyine) bağlı SEÇ döndüren şunlardır: hemen
(NOLOCK
ile SELECT'in tüm durumlar için
- ) kararsız sokulan satır okuma READ UNCOMMITTED için
- (NOLOCK ile ya da NOLOCK ile SELECT)
işlemin 1 tamamlanmasını) (SADECE IF SEÇ NOLOCK olmadan) ve READ İŞLENEN ve üstü (YİNELENEBİLİR OKU), SERIALIZABLE hareket yalıtım düzeyi
Bunlar içinde
- bekliyor sonuçlar söz konusu durumla çelişir (ve cevaplarda açıklanır?) [1]
(örneğin, NOCHECK'lu SELECT 1'in tamamlanması beklenir)), vbSonuçlarım nasıl ve [1] nasıl açıklanabilir?
Update2:
Bu soru gerçekten benim sorulardan subquestion [3] (veya bunların sonucu yanıtlanmıyor).Atıf:
[1]
Explain locking behavior in SQL Server
[2]
"izolasyonu (veri tabanı sistemleri)"
Plz bağlantı) arka eklemek SQL Server kilitleme davranışı açıklar. Bağlantıda onu burada koruyamıyorum! http://en.wikipedia.org/wiki/Isolation_(database_systems)
[3]
NOLOCK, SQL Server 2005'teki SELECT ifadeleri için varsayılan değerdir?
Is NOLOCK the default for SELECT statements in SQL Server 2005?
yerleştirme işlemi için yalıtım düzeyi 2 işlem hiç gördüğünü etkilemez. İkinci işleminizin "READ UNCOMMITTED" seviyesinin altında çalışmadığından emin misiniz? –