Daha sonra SQL (2005+) sürümleri görünümlerin kullanımını optimize etmede daha iyi görünüyor. Görünümler iş kurallarını birleştirmek için en iyisidir. EG: Çalıştığım yerde telekom ürün veritabanına sahibiz. Her ürün bir rateplana atanır ve bu rateplan değişebilir ve rateplandaki oranlar, oranlar arttıkça veya değiştirilirken etkinleştirilebilir / devre dışı bırakılabilir.
Kolaylaştırmak için iç içe görünümler yapabiliriz. İlk görünüm, hangi tablolara ihtiyaç duyulursa kullansın ve oranlara oranlarını birleştirdi ve sonraki görüş seviyelerinin ihtiyaç duyacağı gerekli verileri getirdi. 2. görünüm (ler) sadece aktif rateplansları ve aktif oranlarını izole edebilir. Veya sadece müşteri oranları. Veya çalışan fiyatları (çalışan indirimi için). Ya da iş yerine konut müşteri oranları. (rateplanslar karmaşıklaşabilir). Mesele şu ki, temel görüş, rateplanslar için genel iş mantığımızın ve oranların tek bir yerde bir araya getirildiğinden emin olmaktır. Bir sonraki görüş açısı bize belirli oranlara (türler, etkin / etkin değil, vb.) Daha fazla odaklanmamızı sağlıyor.
Sorguları ve görünümleri aynı anda oluşturuyorsanız, görüşlerin hata ayıklamayı karmaşıklaştıracağını kabul ediyorum. Ancak, güvenilir bir görünüm kullanıyorsanız, hata ayıklamayı kolaylaştırır. Bu görüntünün zaten zil sesiyle geçtiğini biliyorsunuz, bu yüzden büyük olasılıkla soruna yol açmayacağını biliyorsunuz.
Bununla birlikte, görüşlerinizle ilgili sorunlar ortaya çıkabilir. "bir ürün sadece etkin olmayan bir rateplan ile ilişkili ise ne olur?" ya da "bir rateplan sadece üzerinde etkin olmayan oranlara sahipse?" Bu, kullanıcı hatalarını yakalayan bir mantıkla ön uç seviyede yakalanabilir. "Hata, ürün etkin olmayan bir rateplan'da ... lütfen düzeltin". Bir faturalandırma çalıştırmasından önce kontrol etmek için sorgu denetimlerini de çalıştırabiliriz. (tüm planları seçin ve soldaki aktif rateplan görünümüne katılın, yalnızca etkin bir rateplan almayan planları, ele alınması gereken sorunlar olarak geri getirin).
Bu konuda iyi olan şey, görünümler, raporlama, faturalandırma vb. Sorguları büyük ölçüde azaltmanıza olanak tanır. Bir müşteri hesabı görünümüne, sonra da sadece aktif müşterilerin 2. seviyeli bir görüntüsüne sahip olabilirsiniz. Bunu müşteri adresi bakış açısıyla yapın. Ürün (ler) i görerek takımın (müşterinin sahip olduğu ürüne katıldı). Ürün (ler) rateplan görmek için ekip. Bunu ürün özelliklerine göre inceleyin. Bütünlük sağlamak için her deneme-n-hatalı, görüntüle, görüntüle, görüntüle. Görünümleri kullanarak son sorgunuz çok küçük.
Düzenle:
Görüntünün düz bir tablo sorgusundan daha iyi olacağının bir örneği olarak ... bazı değişiklikler yapmak için geçici bir yüklenicimiz vardı. Ona bazı şeyler için görüşlerin olduğunu söylediler, ancak bütün sorgularını düzleştirmeye karar verdi. Fatura, bazı sorgularından bazı şeyleri kaçırıyordu. Birden çok rateplans ve oranlar üzerine oranlar almaya devam ettiler. Sorguların yalnızca oranların, bu oranın bu oranları kullanması beklenen başlangıç / bitiş tarihleri arasında olması durumunda fiyatların faturalandırılmasına izin verecek ölçütlerinin bulunmadığı ortaya çıktı. Hata. Bu görüşü kullanmış olsaydı, bu mantığı çoktan hesaba katardı.
Temel olarak, performansa karşı akıl sağlığı sağlamalısınız. Belki bir veritabanının performansını artırmak için her türlü süslü şeyi yapabilirsiniz. Ancak, yeni bir kişinin devralması / sürdürmesi kabussa, gerçekten buna değer mi? Gerçekten yeni bir adamın mantığını değiştirmesi gereken tüm soruları bulmak zorunda kalmak (ve onu unutmasını / yağlanmasını önlemek için risk almak) zorlamak zorunda kalması b / c birisinin görüşlerinin "kötü" olduğuna karar verdi ve Çekirdek iş mantığını 100'lerin diğer sorgularında kullanılabilecek bir çözümde birleştirmedi mi? Gerçekten işinize ve BT / IS / DB ekibinize kalmış. Ancak, performansa göre netliği ve tek kaynaklı birleştirmeyi tercih ederim.