Hoş Geldin, Ziyaretçi!

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

dsgn kguard
ROLLET remastered
vsupload kguardedgeakademi
cleopatra legacy
ecr-online boş reklam

vSRO Çözüldü WITH (NOLOCK) Gerekliliği

Karabiber

Elite
.
Katılım
12 Haz 2023
Mesajlar
59
Alınan Beğeni
12
Ödül Puanları
8
Konum
İstanbul
Merhaba arkadaşlar, yavaş yavaş öğreniyor ve yavaş yavaş kendimi geliştiriyorum ancak bazı durumlarda tıkandığım oluyor ona istinaden bu konuyu açmış bulunmaktayım, zamanını ayırıp cevap verecek herkese şimdiden teşekkür ediyorum.

WITH (NOLOCK) kullanımı konusunda takılmış durumdayım, her SELECT sorgusunda bunu kullanmalı mıyım? Biliyorum ki bir sorgu yaparken diğer sorgunun beklemeden veri çekmesi adına bunu kullanmalıyım ama SQL de zaten sorgular çok hızlı oluyor yinede bunu kullanmalı mıyım ? yada Kullanacaksam hangi tablolarda kullanmalıyım örn RefObjCommon da veri girişi olmadığı için burada kullanmamam gerektiğini düşünüyorum ama _Char tablosunda yeni çar açılabilir buraya veri girişi olur o sırada ben tablodan veri çekiyor olabilirim ve bu sorgu WITH (NOLOCK) olmadan _Char tablosuna baktığı zaman sorun yaşar mı ?

Bu konuda beni aydınlatabilecek bir arkadaş var mı ?
Şu anda bazı prosedürler yazmış durumdayım ve hepsi gayet sağlıklı bir şekilde çalışmakta ama çok oyunculu bir serverde ne olur kestiremiyorum buna istinaden cevaplarınızı bekliyorum.
iyi forumlar..
 

Hades

Developer
.
Katılım
30 Tem 2019
Mesajlar
505
Çözümler
20
Alınan Beğeni
890
Ödül Puanları
93
Konum
Kahramanmaraş
Eğer veri çekmek istediğin tabloda bir transaction varsa with(nolock) ile o transaction kilidini açıp işlem gerçekleşmiş gibi veri çekebilirsin.
 

iMonarch

KGuardEDGE
.
Katılım
14 Tem 2018
Mesajlar
623
Çözümler
15
Alınan Beğeni
1,010
Ödül Puanları
214
Konum
İstanbul
Her zaman olmasada bazı yazdığım prosedür ve event içeriklerinde kullanıyorum.
Bir sorgu çalıştığında, diğer sorguların veritabanı üzerinde yaptığı değişikliklerin etkisinde kalmaz.
Bunun sebebi bu tablodan veri okumak istediğimizde (select) burada işi bitmemiş olan bir “insert, update veya delete” işlemi olduğundan, ve henüz işlemler tamamlanmadığından dolayı o tablodaki veriler bloklanmaya sebep olur (transaction sonlanana kadar). Böyle durumlarda veri okurken with(nolock) komutunu kullanırsak transaction bitmemiş olsa dahi select sorgusunun çalıştırıldığı ana kadarki verileri getiririlir, ve arka tarafta transaction devam eder. Ama, bizim select sorgusunu çalıştırdığımız ana kadarki halini bize döndürür.

SQL:
İçeriği görebilmek için Uye olmanız gerekiyor.
SQL:
İçeriği görebilmek için Uye olmanız gerekiyor.
SQL:
İçeriği görebilmek için Uye olmanız gerekiyor.
 

SaltanatNaibi

VSRO / SQL Server / PK2 Edit / Cyber Security /
.
.
Katılım
19 Ara 2018
Mesajlar
1,185
Çözümler
5
Alınan Beğeni
622
Ödül Puanları
113
Konum
/ Kali/Linux /
Bu kullanıcıyla bir anlaşma yapmak istiyorsanız, bu forumdan uzaklaştırıldığını lütfen unutmayın.
konunun uzmanı yorum yaptıysa olay bitmiştir @iMonarch <3
 

Karabiber

Elite
.
Katılım
12 Haz 2023
Mesajlar
59
Alınan Beğeni
12
Ödül Puanları
8
Konum
İstanbul
Peki, bu durumda WITH NOLOCK durumunu sadece karakteri ilgilendirecek her sorguda kullanmamız bize sadece fayda getirmez mi ?
Örnek vermem gerekirse
Karakter üzerindeki item için update işlemi yaptıracağım ve bu işlem diğer oyuncuların yaptığı hiç bir sorguda karakterdeki slot6,7 veya 13 e yansımayacak bu durumda benim WITH NOLOCK kullanımım bana sadece fayda getirir doğru mu anladım ?

Ama Event gibi veya bir etkinlikte diğer oyuncuların yaptığı hareket Update veya DELETE getirdiğinde yeni sorguyu yapacak olan oyuncununda bundan etkilenme sebebinin muhtemel olmasınıda dikkate alırsak WITH NOLOCK kullanımı uygun olmuyor

acaba bütün olayı doğru anlamış mıyım ?
 
Katılım
20 Nis 2019
Mesajlar
107
Çözümler
2
Alınan Beğeni
158
Ödül Puanları
43
Konum
İstanbul
Kısacası sabit sütun verilerinde ihtiyacına göre kullanabilirsin. Değişkenlik gösteren verilerde kullanma. (x bir puan sütunu) değişkenlik gösterirken. (_Char charname) sabit ve değişkenlik göstermez.
WITH NOLOCK her sorguda kullanman gereken bir şey değil, sadece ihtiyaç halinde kullan, her değişken için kullanman sorun yaratacaktır.
 

Karabiber

Elite
.
Katılım
12 Haz 2023
Mesajlar
59
Alınan Beğeni
12
Ödül Puanları
8
Konum
İstanbul
Hocam verilen cevaplardan ötürü teşekkür ediyorum, konu güzel bir şekilde anlaşılmıştır.
 
AdBlock Detected

Anlıyoruz, reklamlar can sıkıcı!

Elbette, reklam engelleme yazılımı reklamları engellemede harika bir iş çıkarır, ancak aynı zamanda web sitemizin faydalı özelliklerini de engeller. En iyi site deneyimi için lütfen AdBlocker'ınızı devre dışı bırakın.

AdBlock'u Devre Dışı Bıraktım.