Bir MV'nin yalnızca değişen verileri değiştiren hızlı bir yenileme yapmasına izin vermek için materyalize görünüm (MV) günlüğü kullanılabilir. Ancak, çeşitli koşullar MV'nin günlüğü kullanmasını önler ve bu nedenle tam bir yenileme gerektirir. Oracle, her kaydın silinmesi ve eklenmesi için atomik bir tam yenileme uyguladı. Sonuçta verilerde değişiklik olmasa bile bunu yapar.
Bu çoğaltmayı yeniden oluşturma konusunda akıllı yapmanın bir yolu var mı ? MERGE ve ardından DELETE, kaynağın iki kez sorgulanmasını gerektirir. BULK MERGE ve DELETE yapmak için verileri toplu olarak toplamaya değer mi? Daha iyi bir yol var mı?
Güncelleme:
Evreleme alanı olarak genel bir geçici tablo kullanarak araştırdım. Yinelemenin yarısından azını kullanıyor olsalar da, yine de çok fazla kullanıyorlar.
insert
s için bir GTT arasında yinelemede% 60 azalma gösteren bir GTT Yeniden Yapma Demosu'na sahiptir . Bu, gördüğüm sonuçlarla yakından eşleşiyor ve daha iyi ama istediğim kadar iyi değil.
append
ipucu yok ) yinelemeyi azaltmak için ideal koşullar değildir - ne demek istediğimi göstermek için bazı testler yaptım. Bir yorum olarak sığmayacaklarından bir cevap olarak gönderildi
insert
ops çok az geri al üretmekdelete
veyaupdate
operatör (aslında neredeyse hiçbiri). Herhangi bir pahalı ops önlemek için birden fazla gtt olması iyi bir yaklaşım olabilir