Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Raporlamada hangisi daha performanslıdır View? Store Procedure?
#11
(23-12-2017, Saat: 16:00)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBildiğime göre viewler tabloları izler ve,  oluşturulan viewlerin bağlı olduğu tablolarda değişiklik olmadığı sürece yeniden derlenmez bu şekilde temporary de hazır bekler.

Düşündüğünüz gibi view'ler hazır halde beklemezler. Dediğiniz gibi hazır halde bekleyen ve bağımlı tablolarda değişiklik olduğunda otomatik güncellenen tablolara Sql Server'da Indexed View, Oracle'da Materialized View denir. Bu tür View'lerde index (full text index dahil) oluşturmak da mümkündür. Kanaatimce yukarıdaki çözümlerin en hızlısı bu çözümdür. Fakat Indexed View oluşturmak için bazı koşullar gerekir.

Indexed View Oluşturmanın Ön Şartları:
Bir View üzerine Clustered Index tanımlamadan önce bazı ön şartların sağlanmış olması gerekmektedir. Bu ön şartlardan bazıları aşağıdaki gibidir:
  • İlgili View’in içinde başka bir View kullanılamaz.
  • View’in içinde kullanılan tüm tablolar View ile aynı veritabanında ve aynı schema sahibine ait olmak zorundadır.
  • View SchemaBinding opsiyonu ile oluşturulmak zorundadır.
  • View içinde kullanılan UDF (User Defined Functions) ‘larda SchemaBinding opsiyonu ile oluşturulmuş olmalıdır.
  • View içinde kullanılan tablo ve UDF’ler SchemaName+ObjectName şeklinde kullanılmalıdır. Örneğin Person.Address gibi.
  • View’de hesaplama fonksiyonu kullanıldı ise select kısmında COUNT_BIG(*) kullanılması zorunludur.
  • Ayrıca select kısmı için aşağıdaki engeller mevcuttur.
    • Select * şeklinde bir kullanıma izin verilmez. Kolon adları belirtilmek zorundadır.
    • Aynı kolon adı 1 den fazla kullanılamaz.(“Select col1 as a, col1 as b from tbl1” gibi)
    • CTE (Common Table Expression) kullanımına izin verilmez.
    • TOP ve Order By kullanılamaz.
    • Count kullanılamaz. Count yerine Count_Big kullanılmalıdır.
Kaynak:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#12
(23-12-2017, Saat: 17:11)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(23-12-2017, Saat: 16:00)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBildiğime göre viewler tabloları izler ve,  oluşturulan viewlerin bağlı olduğu tablolarda değişiklik olmadığı sürece yeniden derlenmez bu şekilde temporary de hazır bekler.

Düşündüğünüz view'ler hazır halde beklemezler. Dediğiniz gibi hazır halde bekleyen ve bağımlı tablolarda değişiklik olduğunda otomatik güncellenen tablolara Sql Server'da Indexed View, Oracle'da Materialized View denir. Bu tür View'lerde index (full text index dahil) oluşturmak da mümkündür. Kanaatimce yukarıdaki çözümlerin en hızlısı bu çözümdür. Fakat Indexed View oluşturmak için bazı koşullar gerekir.

Indexed View Oluşturmanın Ön Şartları:
Bir View üzerine Clustered Index tanımlamadan önce bazı ön şartların sağlanmış olması gerekmektedir. Bu ön şartlardan bazıları aşağıdaki gibidir:
  • İlgili View’in içinde başka bir View kullanılamaz.
  • View’in içinde kullanılan tüm tablolar View ile aynı veritabanında ve aynı schema sahibine ait olmak zorundadır.
  • View SchemaBinding opsiyonu ile oluşturulmak zorundadır.
  • View içinde kullanılan UDF (User Defined Functions) ‘larda SchemaBinding opsiyonu ile oluşturulmuş olmalıdır.
  • View içinde kullanılan tablo ve UDF’ler SchemaName+ObjectName şeklinde kullanılmalıdır. Örneğin Person.Address gibi.
  • View’de hesaplama fonksiyonu kullanıldı ise select kısmında COUNT_BIG(*) kullanılması zorunludur.
  • Ayrıca select kısmı için aşağıdaki engeller mevcuttur.
    • Select * şeklinde bir kullanıma izin verilmez. Kolon adları belirtilmek zorundadır.
    • Aynı kolon adı 1 den fazla kullanılamaz.(“Select col1 as a, col1 as b from tbl1” gibi)
    • CTE (Common Table Expression) kullanımına izin verilmez.
    • TOP ve Order By kullanılamaz.
    • Count kullanılamaz. Count yerine Count_Big kullanılmalıdır.
Kaynak:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Bu kadar detaya Girmek istememiştim ama Smile Durum buraya kadar geldi Smile
Ellerinize sağlık.
Cevapla
#13
(23-12-2017, Saat: 18:01)FiRewaLL Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBu kadar detaya Girmek istememiştim ama Smile Durum buraya kadar geldi Smile
Ellerinize sağlık.


Burası Delphican, Üyelerinin kalitesi  Wink
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#14
(23-12-2017, Saat: 18:33)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(23-12-2017, Saat: 18:01)FiRewaLL Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBu kadar detaya Girmek istememiştim ama Smile Durum buraya kadar geldi Smile
Ellerinize sağlık.


Burası Delphican, Üyelerinin kalitesi  Wink

Wink Kesinlikle
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Store Procedure içinden hata alma Bay_Y 4 192 23-05-2018, Saat: 12:34
Son Yorum: Bay_Y
  MS-SQL Server Procedure Tavsiyeleriniz Fesih ARSLAN 21 1.919 28-07-2017, Saat: 08:21
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi