İŞLEM İZOLASYON SEVİYESİNİ SERİLEŞTİRİLEBİLDİ sonra okundu okumayı ekler miyim?


9

Saklı yordam içinde aşağıdakiler var: (sql server 2008)

 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
 BEGIN TRANSACTION getStuff
 BEGIN TRY 
    /*  some selects, updates, etc, etc. */
    ....
    COMMIT TRANSACTION getStuff
 END TRY
 BEGIN CATCH 
   ...
 END CATCH

Bu işlem tabanlı olduğundan, veritabanı bağlantılarının geri kalanı SERIALIZABLE'dan etkilenmeyecekti.

Taahhüdümden sonra kesin olarak okumak için dolaylı olarak izolasyon düzeyi ayarlamam gerekir mi? Bu, uygulama sunucum ile veritabanı sunucum arasındaki diğer bağlantıları olumsuz etkileyecek mi?

Yanıtlar:


6

Komut TRANSACTION ISOLATION LEVELdeğil SERVER ISOLATION LEVEL. Yalnızca işlem kapsamı için yalıtım düzeyini değiştirir.


5

Hayır, taahhütlü okumak için izolasyon düzeyini dolaylı olarak ayarlamanıza gerek yoktur.

Çevrimiçi kitaplardan .

Saklı yordamda veya tetikleyicide İŞLEM İZOLASYON SEVİYESİ AYARLARINI verirseniz, nesne kontrolü döndürdüğünde, yalıtım düzeyi, nesne çağrıldığında geçerli seviyeye sıfırlanır. Örneğin, bir toplu işte REPEATABLE READ ayarlarsanız ve toplu iş daha sonra yalıtım düzeyini SERIALIZABLE olarak ayarlayan bir saklı yordam çağırırsa, saklı yordam toplu iş denetimini döndürdüğünde, yalıtım düzeyi ayarı REPEATABLE READ olarak döner.


3

Gönderdiğiniz komut yalnızca SP'de işlemi çalıştırır TRANSACTION ISOLATION LEVEL SERIALIZABLE. Diğer bağlantılar varsayılan olarak varsayılan yalıtım seviyesine ayarlanacaktır - okundu (açıkça farklı bir yalıtım seviyesi belirtilmedikçe).

Paul White'ın mükemmel bir serisi var - SQL Server İzolasyon Seviyeleri: Farklı izolasyon seviyelerinin ne anlama geldiğini ve kullanıldığında ne yaptığını derinlemesine anlamanıza yardımcı olacak bir Seri .


-3

Önceki yaklaşımların olumsuz taraflarının çoğunu önleyen oldukça yeni bir algoritma. İşlemlerin engellemeden devam etmesine izin veren iyimser bir yaklaşım kullanır. Bir işlem işlemek istediğinde kontrol edilir ve yürütme serileştirilemezse iptal edilir. Tüm uygulama yaklaşımları hakkında daha fazla bilgi için: http://writeulearn.com/relational-database-transactions/


Bu sorunun cevabı gibi görünmüyor ....
RDFozz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.