İndexed Views nedir? Ne işe yarar? Nasıl Kullanılır?
Merhabalar bu yazımda Views ‘lere index kullanımı amaçları ve dezavantaçlarını anlatacağım.
Öncelikle View’ler kullanım amacını bilmemiz gerekir.
View ‘ler SQL tabloların birleşimi ile oluşturulan istenilen bilgiler(Kolonlar) göre oluşturulan raporlama işlemi diyebiliriz.
Örnek olarak
create view [dbo].[Ozet_Yillik_Satislar] as SELECT Satislar.SevkTarihi, Satislar.SatisID, Satis_Alt_Toplamlari.Subtotal FROM Satislar INNER JOIN Satis_Alt_Toplamlari ON Satislar.SatisID = Satis Alt Toplamlari.SatisID WHERE Satislar.SevkTarihi IS NOT NULL GO
Normalde bir view, sorgularda kullanılan verilerin sanal bir birleşimidir.
Ancak indexed view oluşturulduğunda, SQL Server bu görünüme bir clustered index –non-clustered index ekler. Bu indeks, görünümün verilerini fiziksel olarak depolar ve sorgular doğrudan bu indeksi kullanarak daha hızlı bir şekilde sonuç döndürebilir.
NOT: Tabiki Disk maliyetini düşünmemiz gerekir performans açısından daha iyi olması View’in artık index üzerinden işlem yapmasıdır.
Indexed View Kullanım Durumları
- Karmaşık ve Sık Kullanılan Sorgular
- Veri Analizi ve Raporlama
- Özet Tablo Oluşturma
Indexed View Kullanımında Dikkat Edilmesi Gerekenler
- Güncellemeler ve Performans:
Tablo verilerinde her değişiklik yapıldığında otomatik olarak güncellenir. Bu, insert, update ve delete işlemleri üzerinde ekstra yük oluşturabilir
- Indexed View’larda Kullanılamayan Veri Türleri vardır.
- text
- ntext
- Image
- nvarchar(max)
- varchar(max) Boyutu belli olmayan veri türleri diyebiliriz
- Görünüm Tasarımı:
Schema Bound uygulanması View içerisinde kullanılan tablolarımızda herhangi bir yapısal değişikliklere izin vermemesidir.( WITH SCHEMABINDING ifadesi kullanılarak oluşturulan bir görünüm veya fonksiyon schema-bound)
- Indexed View’larda Kullanılamayan Veri Türü Dönüşümleri vardır bunlar.
- Substring
- Cast
- Convert
- Datetime
- Sum
- Avg
- Min,Max vb.
Örnek olarak
Select Column1 +Column2 From table —Kullanılır.
Select LOG(Column1) From table —Kullanılmaz
Indexed View Oluşturma aşamaları ve dikkat edilmesi gereken durumlar
Dikkat etmemiz gereken konu SCHEMA kullanılması gerekiyor. Örnek olarak dbo.table bu şekilde index View oluşturabilirsiniz.
İndex Views dikkatli bir şekilde kullanılmalı ve gereksiz yere veri güncellemesi yapılan durumlarda tercih edilmemelidir.
Yapacağınız analiz doğrultusunda kullanılmasını öneririm.
0 Yorum