Veritabanı sistemlerinde, veritabanı nesnesi olarak gerçekleştirilmiş bir görünüm, bir sorgunun önceden hesaplanmış sonuçlarını fiziksel bir tablo olarak saklar. Veriler aslında diskte saklandığı için karmaşık aramalara daha hızlı ulaşılabiliyor. Ancak görünüm, bir sorguyu tanımlayan ancak gerçekte veri tutmayan sanal bir tablodur. Bir görünüm, onu her sorguladığınızda temeldeki temel tablolardan en güncel bilgileri çeker. Gerçek zamanlı veri erişimi ve önceden hesaplanmış sonuçlar, gerçekleştirilmiş bir görünümün mü yoksa standart bir görünümün mü kullanılacağını belirleyen kriterlerden bazılarıdır.
Gerçekleştirilmiş Görünüm Nedir?
Gerçekleştirilmiş görünüm, bir SQL sorgusunun sonuçlarını fiziksel olarak veritabanında saklar. Saklanan veriler, görünümü temel tablolardaki değişikliklere göre ayarlanmış halde tutmak için belirli aralıklarla (manuel, periyodik veya otomatik olarak) yenilenebilir.
Gerçekleştirilmiş Görünüm Nasıl Çalışır?
Satış verilerini birden fazla bölgeye göre özetleyen karmaşık bir SQL sorgusu yürütmek istediğinizi varsayalım. Her rapor oluşturulması gerektiğinde bu karmaşık sorguyu yürütmek yerine, sonuçların ön hesaplamasını ve depolanmasını gerçekleştiren somutlaştırılmış bir görünüm oluşturursunuz. Bir kullanıcı raporu görmek istediğinde, bir bilgisayar programının çalışması sırasında, çalışmayı kesintiye uğratmadan toplamaları yeniden hesaplamak zorunda kalmak yerine, doğrudan gerçekleştirilmiş görünümden alır.
Gerçekleştirilmiş Görünümün Yaygın Kullanım Durumları
- Ön Hesaplama Toplamaları: Gerçekleştirilmiş görünüm, raporlama ve analiz için mükemmeldir. Toplanan verileri önceden hesaplar ve saklar, böylece zaman alan sorguların tekrar tekrar yürütülmesine gerek kalmaz.
- Karmaşık Birleştirmeler Sırasında Yükün Azaltılması: Maddileştirilmiş görünüm, veritabanı birden fazla karmaşık birleştirme içerdiğinde sorgu yürütme sırasında tabloları birleştirmek ve sonucu depolamak için oluşturulur.
- Sık Erişilen Verileri Önbelleğe Alma: Gerçekleştirilmiş görünüm, sonuçları tutan bir önbellek görevi görerek sorgu performansını artırır ve temel tablolar üzerindeki yükü azaltır.
Görünüm Nedir?
Görünüm, verileri depolamayan sanal bir tablodur. En son sonuçları oluşturmak için görünüme her erişildiğinde sorgu, temel tablolarda birkaç kez yürütülür.
Görünüm Nasıl Çalışır?
Farklı bölgelerden müşteri bilgilerini içeren çok sayıda temel tablonuz olduğunu varsayalım. Birleştirilmiş müşteri verilerini her görüntülemeniz gerektiğinde karmaşık bir SQL sorgusu yazmak yerine bir görünüm oluşturursunuz. Daha sonra görünümü sorguladığınızda, temel tabloları anında birleştirerek verileri alır ve görüntüler.
Görünümün Yaygın Kullanım Durumları
- Karmaşık Sorguları Basitleştirme: View, karmaşık bir dizi birleştirmeyi ve filtreyi tek bir sanal tabloya toplayarak son kullanıcıların verilere daha kolay erişmesini sağlar.
- Güvenliğin Artırılması: Yalnızca belirli sütunları veya satırları gösterecek bir görünüm tanımlayarak, temel verileri gizli tutarak hassas verilere erişim bilgisini sınırlamak mümkündür.
- Soyutlama Katmanı Oluşturma: Görünümü birden fazla tablo üzerinde bir soyutlama katmanı sağlamak için kullanabilirsiniz; böylece ham temel tablolara müdahale etmeye gerek kalmadan verileri anlamayı ve yönetmeyi çok daha kolay hale getirebilirsiniz.
Gerçekleştirilmiş Görünüm ile Görünümün Avantajları ve Dezavantajları
Gerçekleştirilmiş bir görüş ile bir görüş arasında seçim yapmak, uzlaşmaların anlaşılmasını gerektirir. Aşağıda her yaklaşımın ayrıntılı artıları ve eksileri verilmiştir.
Gerçekleştirilmiş Görünümün Artıları ve Eksileri
| Bakış açısı | Artıları | Eksileri |
| Performans | önceden hesaplanmış sonuçları koruyarak performansı artırır | güncellenmezse bayatlar |
| Hız | karmaşık sorgulara harcanan zamanı azaltır | Görünümü korumak için daha fazla depolama alanı gerekiyor |
| Tazelik | düzenli olarak güncellenebilir | Güncellenmedikçe veriler her zaman güncel değildir |
| Kaynak Kullanımı | tekrarlanan sorgular için daha az CPU ve bellek kullanılır | bakım ve depolama için ek kaynaklar gerektirir |
| Esneklik | analitik ve raporlama gibi durumlar için faydalıdır | yeni verilere ihtiyaç duyan gerçek zamanlı uygulamalar için en iyi seçenek değil |
| Bakım | otomatik olarak güncellenebilir (artımlı veya tam) | büyük veritabanları için yenileme maliyetli olabilir |
| Karmaşık Sorgular | son kullanıcıların karmaşık sorguları anlamalarına yardımcı olur | temel tabloları güncellemek için görünümü yenilemek gerekir |
| Eşzamanlılık | sonuçların önbelleğe alınmasıyla veritabanı üzerindeki yük azalır | veritabanı performansı yüksek yenileme hızlarından etkilenir |
Görünümün Artıları ve Eksileri
| Bakış açısı | Artıları | Eksileri |
| Performans | veri erişimini basitleştirmek için kullanışlıdır | sorgu birden fazla birleştirme veya toplama içeriyorsa yavaşlar |
| Hız | gerçek zamanlı verilere en son bilgilerle ve gecikme olmadan erişim | özellikle görünüm karmaşık olduğunda daha yavaş sorgu |
| Tazelik | Temel tablolarla her zaman güncel | karmaşık sorgularda performansın düşmesine neden olabilir |
| Kaynak Kullanımı | yalnızca sorgunun tanımını tuttuğu için daha fazla depolama gerektirmez | Her yürütme sorgusu sonuçları yeniden hesaplar |
| Esneklik | sorgularda normal bir tablo gibi ele alınabilir | performans ağırlıklı analizler için uygun değil |
| Bakım | Gerçek zamanlı verileri otomatik olarak aldığından yenileme gerekmez | Büyük veri kümeleri kullanılarak sık sık erişildiğinde performans düşebilir |
| Karmaşık Sorgular | yapılandırılmış bir soyutlama sağlayarak sorgu mantığında kolaylık sağlar | önceden hesaplanmış sonuçlar gerçekleştirilmiş bir görünüm gibi saklanamaz |
| Eşzamanlılık | her zaman temel tablolardaki gerçek zamanlı değişiklikleri gösterir | ağır yük veritabanına ekstra ağırlık getirebilir |
Görünüm ve Gerçekleştirilmiş Görünüm Arasındaki Temel Farklılıklar
Modern uygulamalar omurga olarak veritabanlarına dayanır ve verilerin kontrolü iki temel araçla gerçekleştirilir: materyalleştirilmiş görünüm ve görünüm. Esas olarak veri erişimini basitleştirmek ve sorgu performansını optimize etmek için mevcutturlar ancak amaçları bakımından farklılık gösterirler. Aşağıda, gerçekleştirilmiş bir görünüm ile bir görünüm arasındaki birkaç ayırt edici özellik bulunmaktadır.
Depolamak
- Gerçekleştirilmiş Görünüm: Gerçek verileri veritabanında saklar.
- Görünüm: Verileri saklamaz; yalnızca sorgu tanımını saklar.
Sorgu Yürütme
- Gerçekleştirilmiş Görünüm: Önceden hesaplanmış veriler getirilir, böylece sorgu performansı artar.
- Görüş: Her erişimde sorgu yürütme başlatılır.
Veri Güncelliği
- Gerçekleştirilmiş Görünüm: Açıkça yenilenmedikçe veriler eskiyebilir.
- Görüş: Her zaman temel tablolardan en son verileri getirir.
Performans
- Gerçekleştirilmiş Görünüm: Daha önce hesaplanan veriler saklandığı için daha hızlıdır.
- Görüş: Sorgu karmaşıksa isteğe bağlı olduğundan daha yavaş olabilir.
Yenileme Mekanizması
- Gerçekleştirilmiş Görünüm: İçeriği güncellemek için manuel veya planlı bir yenileme gerekir.
- Görüş: Gerçek zamanlı veriler her zaman alındığından yenileme gerekmez.
Depolama Gereksinimi
- Gerçekleştirilmiş Görünüm: Önceden hesaplanan sonuçların korunması için bir miktar ekstra depolama alanı gerektirir.
- Görüş: Sorgu meta verileri dışında aslında hiçbir depolama alanı kullanmaz.
Kullanım Durumları
- Gerçekleştirilmiş Görünüm: Raporlama, analiz ve performans açısından yoğun sorgular için uygundur.
- Görüş: Gerçek zamanlıya yakın verilerin zorunlu olduğu durumlarda bir seçenek.
Karmaşıklık
- Gerçekleştirilmiş Görünüm: Bakım ve yenileme yönetimi gerekiyor.
- Görüş: Kurulumu ve kullanımı basit ancak kaynak açısından yoğun olabilir.
Gerçekleştirilmiş Görünüm ve Görünüm Ne Zaman Kullanılmalı?
Şu durumlarda Gerçekleştirilmiş Görünümü Kullanın:
Maddileştirilmiş görünüm, sorgu performansının her ne pahasına olursa olsun iyileştirilmesi gerektiğinde, özellikle de böyle bir sorgu, ağır toplama, birleştirme veya işleme işlemleriyle sonuçları döndürmeden önce çok sayıda hesaplama içeriyorsa mevcuttur. Önceden hesaplanmış sonuçların veritabanına uygulanan yükte veya sorguların sonuç döndürme hızlarında büyük farklar yaratması durumunda özellikle yararlı olabilir. Gerçekleştirilmiş görünümün en son güncellenen verileri elde etmek için periyodik olarak yenilenmesi gerekmesine rağmen, gerçek zamanlı veri erişiminin o kadar da kritik olmadığı ancak hızlı yürütmenin hala önemli olduğu raporlama ve analitik senaryolarda bir amaca hizmet ederler.
Görünümü Şu Durumlarda Kullanın:
Sorgunun her zaman en güncel verileri getirmesi gereken, veri erişiminin gerçek zamanlı olması ve sorgu karmaşıklığının yönetilebilmesi gereken görünümü kullanın ve görünümün verileri fiziksel olarak veritabanında depolamadığını, dolayısıyla daha az depolama gerektirdiğini unutmayın. Ancak, çok karmaşık sorgular için görünümün birkaç kez çalıştırıldığında sistemi yavaşlatabileceğini unutmayın.
Çözüm
Gerçekleştirilmiş görünümün normal görünümden ne kadar farklı olduğu, bir veritabanının performansını ayarlarken önemli bir kavramdır. Gerçekleştirilmiş görünüm, yoğun işlemler için sorguyu hızlandırmak amacıyla önceden hesaplanmış sonuçları saklayan bir görünümdür; ancak zamanında yenilenmediği takdirde bayatlayabileceklerinden bakım açısından sıkıntı yaratabilirler. Aksine, görünüm, gerçek zamanlı doğruluk için temel tablolardan yapılan değişikliklere göre güncellenir, ancak bunlar bir miktar performansa mal olabilir.
Bunlar arasında karar verirken veritabanı iş yükünüzü, sorgunun karmaşıklığını ve gerçek zamanlı verilerin ne kadar önemli olduğunu göz önünde bulundurun. Performansın öncelikli olduğu raporlama veya analizler için somutlaştırılmış görünüm güçlü bir adaydır. Bunun aksine, en son verilerin önemli olduğu senaryolarda düzenli bir görünüm tercih edilir.
Nihai karar aynı zamanda kullanılan veri tabanı sistemine de bağlı olabilir. Farklı veritabanı sistemleri dahil PostgreSQL, Kahin, Ve MySQL değişen düzeylerde gerçekleştirilmiş görünüm desteği ve yeteneklerine sahiptir.