SQL Phantom Read Nedir?

0 Yanıt 0 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
SQL Phantom Read Nedir?

Veritabanı işlemlerinde karşılaşılan izolasyon problemlerinden biri olan phantom read, özellikle eşzamanlı çalışan işlemler arasında ortaya çıkan önemli bir durumu ifade eder. Bu olay, bir işlem sırasında yapılan sorgunun, başka bir işlemin eklediği veya sildiği "yeni" kayıtları görmesine neden olurken, bu kayıtların başka bir noktada veya farklı bir zamanda tekrar sorgulandığında görünmemesiyle kendini gösterir. Yani, işlem sırasında "hayali" veriler görünür hale gelir; bu nedenle "phantom" (hayali) terimi kullanılır.

Bu durumu anlamanın en iyi yolu, izolasyon seviyeleriyle ilgilidir. SQL standartları, dört temel izolasyon seviyesi tanımlar:
  • Read Uncommitted: En düşük izolasyon seviyesi, phantom okuma olasılığı yüksektir.
  • Read Committed: Genellikle phantom okumayı engeller, fakat başka işlemler tarafından eklenen yeni kayıtlar tekrar sorgulandığında görünür.
  • Repeatable Read: Aynı sorgu tekrarlandığında sonuçlar değişmez; ancak, yeni kayıtlar eklenebilir, bu da yine phantom okuma anlamına gelir.
  • Serializable: En yüksek izolasyon seviyesi, phantom okuma ve diğer çoğu tutarsızlığı engeller. Bu seviyede, işlem sırasında yeni veya silinen kayıtlar görünmez.


Phantom read, özellikle finans, envanter veya rezervasyon sistemleri gibi tutarlı veri gerektiren uygulamalarda ciddi sorunlara yol açabilir. Örneğin, bir stok güncellemesi sırasında, başka bir işlem yeni bir ürün eklediğinde, ilk işlem bu yeni ürünü görebilir ve bu durum hatalara veya tutarsızlıklara sebep olabilir.

Sonuç olarak, phantom read, SQL'de yaygın görülen ve özellikle yüksek izolasyon seviyeleri kullanılmadığında ortaya çıkan bir tutarsızlık türüdür. Bu durumu önlemek için, yüksek izolasyon seviyeleri veya uygun kilit mekanizmaları kullanılmalıdır.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi