2016-03-31 16 views
0

Asp.Net Webforms uygulamalarındaki verileri önbelleğe alma konusunda herhangi bir deneyimim var.Web çiftliğinde Asp.Net WebForms'ta DB'den depo sabitleri için önbellek nasıl kullanılır?

Web sunucumda dört sunucu var.

MSSQL Server'da sabitleri olan bir tablom var.

Bu sabitleri DB'nin her bir http isteği ile seçmek istemiyorum, ancak değerleri önbellekte ideal bir şekilde kaydetmek ve bu değerleri önbellekten almak istiyorum.

Bunu web çiftliğinde nasıl yapabilirim? Bunu yapmanın en iyi yolu nedir?

cevap

1

Uzun vade süresi ile bu değerleri depolamak için HttpContext.Cache kullanabilir veya onlar gerçekten sabit olup olmadığını (onlar kesinlikle değiştirmek ASLA yani) o zaman bir static classstatic readonly ile özelliklerini kullanabilirsiniz ve bir kez bu özellikleri doldurmak veritabanından.

Her iki durumda da uygulamanın her yerinde kullanılabilirler. Bir web çiftliğinde kullanıldığında bu yaklaşım, her çiftliğin tüm çiftlik için bir kez yerine bir kez elde edeceği anlamına gelir, ancak değerlerin sayısı 10.000'e girmedikçe kişisel olarak bunun için endişelenmeyeceğim.

-1

Veriler gerçekten hiçbir zaman değişmeyecekse, bilgileri depolamak için HttpContext.Current.Application kullanabilirsiniz. bir bakış here göre

:

Application bir önbellek, onun küresel bir adlandırılmış değer koleksiyonu değil. Bir nesneyi Application'a eklerseniz, bir uygulama alanı geri dönüştürülene kadar kalır.

  • Uygulama değişkenleri
  • Uygulama değişkenleri statik değişkenler gibi davranırlar ve statik değişkenler web uygulamalarında vatansız oldukları gibi statik değişkenlerin yerine olan bir web uygulaması tüm kullanıcıları arasında değişkenleri paylaşılan
  • Sadece paylaşılan değerler olmalıdır Uygulama değişkenlerinde devam etti ve kullanılmadığı anda açıkça kaldırılmalıdır.

Cache: Ya Application veya Cache sınıflarında sık talep nesneleri ve verileri önbelleğe alarak ASP.NET uygulamalarında önemli performans iyileştirmeleri elde etmek mümkündür. Cache sınıfı kesinlikle daha fazla esneklik ve kontrol sunarken, yalnızca önbellekleme için Application sınıfında artan verim açısından marjinal bir avantaj sunacak gibi görünüyor. Cache sınıfının, uygulamanın bu özelliği sunmamasına karşın, süpürme işlemiyle daha az kullanılan nesnelerin yerleşik yönetiminin potansiyel avantajlarını doğru bir şekilde ölçebilecek bir test şeması geliştirmek çok zor olacaktır. Geliştiricinin bu durumda karar alması ve projenin ihtiyaç ve kolaylığına ve kullanım modellerine dayanması gerekmektedir.

+1

Yığın Taşmasına Hoş Geldiniz! Bağlantı soruyu yanıtlayabilirken bağlantılar değişir, bu yüzden Yığın Taşması onlara bağlı olmamayı tercih eder. [Daha iyi olurdu] (// meta.stackoverflow.com/q/8259) burada cevabın önemli kısımlarını içerecek ve referans için bağlantı sağlayacaktır. –