Oracle Veritabanında Hızlı Karşılama ve Hızlı Temizlik Karşılama


12

Birinin Oracle Veritabanları ile ilgili bu 3 terim arasındaki farklar hakkındaki anlayışımı doğrulayıp doğrulayamayacağını merak ediyordum.

Birçok kaynak bu terimleri karıştırır ve ayrıntılı olarak açıklamaz, bu yüzden bilgi bulmak biraz zor oldu.

Topladıklarımdan:

  1. Taahhüt ve hızlı taahhüt aynı şeydir, tüm taahhütler hızlı taahhütlerdir.
  2. Bir hızlı işlem, esasen yalnızca geri alma / geri alma segmenti başlığının işlem tablosundaki bayrağı, işlemin yapıldığını belirtmek için günceller. Bununla birlikte, gerçek blok tekrar gözden geçirilmez, yani veri bloğunun başlığında bulunan ilgili işlem listesindeki (ITL) geri alma bayt adresi (UBA) hala karşılık gelen geri alma segmentinin işlem tablosuna işaret eder. Ayrıca, karşılık gelen satırların kilit baytları serbest bırakılmaz ve ITL'deki kilit sayısı değişmez (satırlar hala kilitlidir).
  3. Bir cleanout taahhüt olarak, blok edilir dönülmüş ve ITL taahhüt SCN ile güncellenir. Bununla birlikte, ITL'deki kilit sayısı ve her bir satırda depolanan kilit baytı hala güncellenmemektedir (satır hala hızlı taahhütte olduğu gibi kilitli), blok değiştirilse bile bu yeniden yapmaz.
  4. Normal olarak işlenen (== hızlı işlenen) bloklar, bir sonraki dokunuşlarında Gecikmeli Blok Temizleme işlemine tabi tutulur (ve yineleme oluşturur).
  5. Taahhüt temizliği uygulanan bloklar, bir sonraki dokunuşlarında (ve yineleme oluşturduklarında) Gecikmeli Günlük Bloğu Temizleme işlemine tabi tutulur.

Umarım birisi bu noktaları doğrulayabilir! Teşekkürler!

Yanıtlar:


6

Temel bilgileriniz doğru. Sadece bir tür taahhüt vardır ( normal değil , hızlı ...).

dan kavramlar doc :

Bir işlem gerçekleştiğinde, aşağıdaki eylemler gerçekleşir:

  • COMMIT için bir sistem değişiklik numarası (SCN) oluşturulur.

    İlişkili geri alma tablo alanının iç işlem tablosu, işlemin gerçekleştirdiği kayıtları kaydeder. İşlemin karşılık gelen benzersiz SCN'si işlem tablosuna atanır ve kaydedilir. Bkz. "Serileştirilebilir İzolasyon Seviyesi".

  • Günlük yazıcı (LGWR) işlemi, yineleme günlüğü arabelleklerinde kalan yineleme günlüğü girişlerini çevrimiçi yineleme günlüğüne yazar ve SCN işlemini çevrimiçi yineleme günlüğüne yazar. Bu atom olayı işlemin taahhüdünü oluşturur.

  • Oracle Database, satır ve tablolardaki kilitleri serbest bırakır.

    Taahhütsüz işlem tarafından tutulan kilitlerde beklemede olan kullanıcıların çalışmalarına devam etmelerine izin verilir.

  • Oracle Database kayıt noktalarını siler.

  • Oracle Database bir taahhüt temizliği gerçekleştirir.

    Taahhüt edilen işlemden veri içeren değiştirilmiş bloklar hala SGA'daysa ve başka bir oturumda değişiklik yapmıyorsa, veritabanı kilitlerle ilgili işlem bilgilerini bloklardan kaldırır. İdeal olarak, KOMİT blokları temizler, böylece sonraki bir SELECT'in bu görevi yerine getirmesi gerekmez.

Bu nedenle, bloklar hala SGA'daysa, kesinleştirme sırasında temizleme (yineleme ile dolu) yapılacaktır.

Aktif sistemlerde, tamamlanmamış işlemlerin bulunduğu blokların diske yazılması ve SGA'dan temizlenmesi yaygındır. Bu durumda, blok olduğu gibi bırakılır ve bloğa dokunan bir sonraki sorgu gecikmiş blok temizliği gerçekleştirir (5. noktanız her durumda gerçekleşmez).

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.