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.
inserts 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.
appendipucu 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
insertops çok az geri al üretmekdeleteveyaupdateoperatör (aslında neredeyse hiçbiri). Herhangi bir pahalı ops önlemek için birden fazla gtt olması iyi bir yaklaşım olabilir