it-swarm-tr.com

Oracle'daki Görünümler ve Materyalleştirilmiş Görünümler arasındaki fark nedir?

Oracle'daki Görünümler ve Materyalleştirilmiş Görünümler arasındaki fark nedir?

323
juan

Materyalize edilmiş görünümler disk tabanlıdır ve sorgu tanımına göre periyodik olarak güncellenir.

Görünümler yalnızca sanaldır ve her tanımlandıklarında sorgu tanımını çalıştırır.

335
dacracot

Görünümler

Görünümün sorgulandığı tarihte görünüm tanımını temel alan tablolardaki verileri değerlendirir . Masalarınızın mantıklı bir görüntüsüdür, başka hiçbir yerde saklanan veri yoktur.

Bir görünümün başında, her zaman en son verileri size döndüreceği olacaktır. Bir görünümün altındaki , performansının , görünümün dayandığı bir seçim ifadesinin ne kadar iyi olduğuna bağlı olmasıdır. Görünüm tarafından kullanılan select ifadesi birçok tabloya katılırsa veya dizine eklenmemiş sütunlara dayalı birleştirme kullanırsa, görünüm düşük performans gösterebilir.

Materyalleştirilmiş görünümler

Bunlar, normal görünümlere benzemektedir, çünkü verilerinizin mantıksal bir görünümüdür (select deyimine dayanarak), ancak, sorgu sonucu kümesinin altında yatan bir tabloya kaydedilmiştir . Bunun üstü, maddileştirilmiş bir görünümü sorguladığınızda, , ayrıca endekslenebilecek bir tablo sorgulamanızdır.

Ek olarak, tüm birleştirmeler gerçekleşmiş görünüm yenileme zamanında çözüldüğü için, birleştirilen görünümden seçtiğiniz her zaman yerine birleştirme ücretini (veya gerçekleştirilmiş görünümünüzü yenileme sıklığınız kadar) ödersiniz. Ek olarak, sorgu yeniden yazma etkinken Oracle, materyalize görünümünüzün kaynağından seçilen bir sorguyu materyalize görünümünüzden okuyacak şekilde optimize edebilir. Toplam tablo biçimleri veya sıkça yürütülen sorguların kopyaları olarak somutlaştırılmış görünümler oluşturduğunuz durumlarda, bu, son kullanıcı uygulamanızın yanıt süresini büyük ölçüde hızlandırabilir. Olumsuz dezavantajı, maddileştirilmiş görünümden geri aldığınız verinin, yalnızca maddileşmiş görünümün en son yenilendiği tarihte olduğu kadar güncel olmasıdır .


Materyalize görünümler, belirli bir programa göre manuel olarak yenilemek üzere veya temel tablolardan birindeki verilerde bir değişiklik tespit eden veritabanına dayanarak . Materyalize edilmiş görünümler, alttaki tablolarda değişiklik verisi yakalama kaynaklarını değiştiren materyalize görünüm günlükleri ile birleştirilerek adım adım güncellenebilir.

Materyalize görünümler çoğunlukla, binlerce milyon satırlık büyük olgu tablolarının sorgulanmasının kullanılamaz bir uygulama ile sonuçlanan sorgu yanıt sürelerine neden olacağı veri depolama/iş zekası uygulamalarında kullanılır.


Materyalize edilmiş görünümler, anlık görüntü yalıtımı 'ya benzer şekilde zaman içinde tutarlı bir anı garantilemeye yardımcı olur.

318
Mike McAllister

Görünüm, alttaki tablolardan veri çekmek için bir sorgu kullanır.

Maddileştirilmiş bir görünüm, bir sorgunun sonuç kümesini içeren diskteki bir tablodur.

Materyalize edilmiş görünümler, öncelikle, kendisine uygulanan indekslerle standart bir görünüm kullanılması uygun olmadığında veya istenmediğinde uygulama performansını arttırmak için kullanılır. Materyalize görünümler, tetikleyiciler aracılığıyla veya ON COMMIT REFRESH seçeneği kullanılarak düzenli olarak güncellenebilir. Bu birkaç ekstra izin gerektirir, ancak karmaşık bir şey değil. ON COMMIT REFRESH, en azından Oracle 10’dan beri uygulanmış.

48
Jeremiah Peschka

Görünümler, temelde, belirli bir sorgu ile anında doldurulmuş tablo benzeri yapılardır. Bir görünüm sorgusunun sonuçları diskte hiçbir yerde saklanmaz ve sorgu her çalıştırıldığında görünüm yeniden oluşturulur. Materyalize görünümler, veritabanında depolanan ve diske yazılmış gerçek yapılardır. Oluşturulduğunda tanımlanan parametrelere dayanarak güncellenir.

18
user12786

Materyalleştirilmiş görünüm - bir sorgunun sonuç kümesini içeren bir diskteki tablo

Önemlendirilmemiş görünüm - verileri temel tablodan çeken bir sorgu

17
fn27

Görünüm: Görünüm yalnızca adlandırılmış bir sorgudur. Hiçbir şey saklamaz. Görünümde bir sorgu olduğunda görünüm tanımının sorgusunu çalıştırır. Gerçek veriler tablodan gelir.

Materyalleştirilmiş görünümler: Verileri fiziksel olarak saklar ve periyodik olarak güncellenir. MV'yi sorgularken, MV'den veri verir.

3
smshafiqulislam

Mike McAllister'ın oldukça ayrıntılı cevabını ekleyerek ...

Materyalize görünümler yalnızca, görünüm sorgusu derleyici tarafından basit kabul edildiğinde değişiklikleri algılayarak veritabanını kullanarak otomatik olarak otomatik olarak yenilenebilir. Çok karmaşık olduğu düşünülürse, yalnızca mview tablosundaki değiştirilen satırları güncellemek için kaynak tablolardaki değişiklikleri izlemek için esasen dahili tetikleyicilerin ne olduğunu ayarlayamaz.

Maddi bir görünüm oluşturduğunuzda, Oracle'ın hem mview aynı adı taşıyan bir tablo olarak oluşturduğunu göreceksiniz, bu da işleri kafa karıştırıcı hale getirebilir.

2
Stew S

A view, bir SQL sorgusundan başka bir şey değildir, bir sorgunun çıktısını alır ve herhangi bir depolama alanı içermeyen veya herhangi bir veri içermeyen bir sanal tablo gibi görünmesini sağlar

Fakat Materialized views şema nesneleridir, bir sorgunun sonuçlarını ayrı bir şema nesnesinde saklar (yani, depolama alanı kaplar ve verileri içerir). Bu, maddileştirilmiş görüntünün, tablo verilerinin fiziksel olarak ayrı bir kopyasını döndürdüğünü gösterir.

1
Dlucidone