Görünümle Materyalize Görünüm Arasındaki Fark

Anonim

Görünüm vs Materyal Görünüm

select * from viewname

View

Daha önce de belirtildiği gibi view, seçili bir sorguyu gizleyen sanal bir tablodur. Bu seçili sorgular önceden yürütülmez. Bir görünümden seçilmiş bir deyimi çalıştırdığımızda, görünüm gövdesindeki select ifadesini yürütür. Gösterme organının select ifadesini çok karmaşık bir ifade olarak varsayalım. Dolayısıyla, çalıştırıldığında, yürütülmesi biraz zaman alır (göreceli olarak daha fazla zaman alır). Buna ek olarak, görüntü kendisini depolamak için çok küçük bir alan kullanır. Çünkü içeriği olarak yalnızca seçkin bir bildiri var.

Materialized View (Mview)

Bu, özel bir görünüm türüdür. Mviews, görüşlerle ilgili performans sorunlarımız olduğunda oluşur. Bir mview oluşturduğumuzda, seçili sorguyu yürütür ve çıktısını bir anlık tablo olarak depolar. Mview'den veri istediğimizde select ifadesini tekrar çalıştırmanız gerekmez. Çıktıyı enstantane tablosundan verir. Bu nedenle, mview'in yürütme süresi, görünümden daha azdır (aynı select ifadesi için). Bununla birlikte, mviews, bir anlık görüntü tablosu olarak saklanan aynı çıktıyı gösterdiği için her zaman kullanılamaz. En son sonuçlarını elde etmek için mview'i yenilemeliyiz.

Görünümü ve Mview arasındaki fark nedir?

1. Mview oluşturulduğunda çıktısını her zaman bir anlık görüntü tablosu olarak depolar ancak görüntüleme herhangi bir tablo oluşturmaz.

2. Görünüm içeriğini depolamak için büyük bir alana ihtiyaç duymaz, ancak mview içeriğini depolamak için bir görünümden (anlık tablo olarak) göreceli olarak daha büyük bir alana ihtiyaç duyar.

3. Görünüm daha büyük yürütme süresi alır, ancak mview, görünümlere göre (aynı select ifadesi için) daha küçük yürütme süresine sahiptir.

4. Mviews'in en yeni verilerini almak için yenilenmesi gerekir, ancak görüntüleme her zaman en yeni verilerini sunar.

5. Şema, mviews oluşturmak için "materialized view oluştur" ayrıcalığına, görüşlerde ise "create view" ayrıcalıklarına ihtiyaç duyar.

6. Daha fazla performans elde etmek için dizinler mviews üzerinde oluşturulabilir, ancak dizinler görünümlerde oluşturulamaz.