A
Aziz
Misafir
Misafir
Merhaba,
Bu yazımda SQL Sunucu üzerinde oluşan Deadlock’ların nasıl oluştuğu ve nasıl izleyebileceğimiz konusunda çok basit bir yöntemi anlatmaya çalışacağım.
Öncelikle DeadLock oluşturtabilmek için basit bir tablo oluşturuyoruz :
Aşağıda Query 1 ve Query 2 scriptleri bulunmaktadır. Bu Scriptleri iki ayrı pencerede peş peşe çalıştıracağız ve ne olduğuna bakalım.
Birinci Query Çıktısı : İlk çalıştırılan Query cevabı geliyor.
İkinci Query Çıktısı :
Gördüğünüz gibi gelen taleplerden biri kurban edilip işleme alınamadı.
Bu olayı basitce anlayabilmek ve izlemek için SSMS üzerinden erişebileceğiniz system_healt alanını kullanabilirsiniz.
Bu alan üzerinde Sağ Tıklayıp : View Target Data… diyelim, ilk aşamada burada bir çok veri göreceksiniz. Bize burada sadece DeacLock mesajları gerekli olduğu için Filtre oluşturacağız.
Aşağıdaki şekilde bir filtreleme yapıyoruz :
Filtre kısmını şu şekilde yapılandırınız
Field : Name
Operator : =
Value xml_deadlock_report
Bu filtreden sonra sadece Deadlock mesajları listelenecektir. OK dediğimizde az önce oluşturduğumuz DeadLock’u göreceğiz.
Burada xml_report tıklandığında Deadlock oluşturan sorguların detayını göreceğiz.
Bu çıktı da Deadlock tab’ına tıkladığınızda oluşan Deadlock’u görsel olarak ta görebilirsiniz.
SQL Server tarafından kurban edilip Rollback yapılan işlem üzeri mavi çarpı işaretli olandır.
Faydalı olması dileklerimle.
Teknolojik Blog
Aziz Ozdemiroglu
The post
Bu yazımda SQL Sunucu üzerinde oluşan Deadlock’ların nasıl oluştuğu ve nasıl izleyebileceğimiz konusunda çok basit bir yöntemi anlatmaya çalışacağım.
Öncelikle DeadLock oluşturtabilmek için basit bir tablo oluşturuyoruz :
Kod:
[B]--- Table 1[/B]
CREATE TABLE SehirListesiA
(
ID INT IDENTITY PRIMARY KEY,
SehirAdi NVARCHAR(50)
)
INSERT INTO SehirListesiA VALUES ('İstanbul'),('Ankara'),('İzmir')
[B]--- Table 2[/B]
CREATE TABLE SehirListesiB
(
ID INT IDENTITY PRIMARY KEY,
SehirAdi NVARCHAR(50)
)
INSERT INTO SehirListesiB VALUES ('İzmir'),('İstanbul'),('İzmir')
Aşağıda Query 1 ve Query 2 scriptleri bulunmaktadır. Bu Scriptleri iki ayrı pencerede peş peşe çalıştıracağız ve ne olduğuna bakalım.
Kod:
--Query Window 1
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
BEGIN TRANSACTION
UPDATE SehirListesiB Set
SehirAdi = 'Diyarbakır' WHERE Id = 1
WAITFOR DELAY '00:00:10'
UPDATE SehirListesiA
Set SehirAdi = 'Düzce' WHERE Id = 1
ROLLBACK TRAN
Kod:
--Query Window 2
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
BEGIN TRANSACTION
UPDATE SehirListesiA Set
SehirAdi = 'Adana' WHERE Id = 1
WAITFOR DELAY '00:00:10'
UPDATE SehirListesiB Set
SehirAdi = 'Ardahan' WHERE Id = 1
ROLLBACK TRAN
Birinci Query Çıktısı : İlk çalıştırılan Query cevabı geliyor.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
İkinci Query Çıktısı :
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Gördüğünüz gibi gelen taleplerden biri kurban edilip işleme alınamadı.
Bu olayı basitce anlayabilmek ve izlemek için SSMS üzerinden erişebileceğiniz system_healt alanını kullanabilirsiniz.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Bu alan üzerinde Sağ Tıklayıp : View Target Data… diyelim, ilk aşamada burada bir çok veri göreceksiniz. Bize burada sadece DeacLock mesajları gerekli olduğu için Filtre oluşturacağız.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Aşağıdaki şekilde bir filtreleme yapıyoruz :
Filtre kısmını şu şekilde yapılandırınız
Field : Name
Operator : =
Value xml_deadlock_report
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Bu filtreden sonra sadece Deadlock mesajları listelenecektir. OK dediğimizde az önce oluşturduğumuz DeadLock’u göreceğiz.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Burada xml_report tıklandığında Deadlock oluşturan sorguların detayını göreceğiz.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Bu çıktı da Deadlock tab’ına tıkladığınızda oluşan Deadlock’u görsel olarak ta görebilirsiniz.
SQL Server tarafından kurban edilip Rollback yapılan işlem üzeri mavi çarpı işaretli olandır.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Faydalı olması dileklerimle.
Teknolojik Blog
Aziz Ozdemiroglu
The post
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
appeared first on
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.