..


Sponsor Bağlantılar

Önbellekleme veri

Verileri önbelleğe herhangi bir yazılım sisteminin performansını artırmak için bir araçtır. Fikir çok güçlü bir cihaz sık kullanılan veri koymaktır. Yığın depolama aygıtlarına erişim zaman geliştirmeye devam ediyor olsa da aslında, örneğin, bir sabit diskte bulunan veriler hala bellekte ise onlara erişmek daha çok daha yavaş erişim. Böylece daha hızlı kullanılan bilgiler uygulamaların performansını artırmak için önemli katkıda kullanılabilir duruma getirmek.

ASP.NET Cache bizim uygulamalara paralel ve HttpContext ve System.Web.UI.Page kullanılabilir. Eğer bir dizin üzerinden nesnelere erişimi almak gibi Cache, Session nesnesi için görüldü ne çok benzer kullanın. Buna ek olarak ayrıca önbellek ve fiziksel veri kaynağı nesneler arasındaki nesneleri ve bağlantıları kümesi süresini kontrol edebilirsiniz.

ASP.NET 'te önbellek yönetimi bir örnekle devam etmek görmek çok kolaydır. Bir veritabanına bir bağlantı yapar yöntemi GetData () ve bir datatable verir varsayalım






 korumalı DataTable GetData ()







 {



  



 DataTable dt = null;



  



 dt = new DataTable ();



  



 strConnection String = "DB Connection string";



  



 DbProviderFactory f =



  



 DbProviderFactories.GetFactory ("System.Data.SqlClient");



  



 (DbConnection conn = f.CreateConnection ()) kullanarak



  



 {



    



 conn.ConnectionString = strConnection;



    



 conn.Open ();



    



 DbCommand komut = f.CreateCommand ();



    



 command.CommandText = "TableName seçin *";



    



 command.Connection = conn;



    



 IDataReader okuyucu = Command.ExecuteReader ();



    



 dt.Load (okuyucu);



    



 reader.Close ();



    



 conn.Close ();



  



 }



  



 dt dönmek;







 }



Ayrıca başka bir yöntem BindData () var ilişkilendiren web formumuzu birinde bir DataList sunmak GetData () tarafından döndürülen veri






 BindData korumalı DataTable ()







 {



  



 DataTable dt;



  



 this.GetData dt = ();



  



 = dt this.DataList1.DataSource;



  



 this.DataBind ();



  



 dt dönmek;







 }



Bizim örneğin gereken diğer bir yöntem belli bir modele göre bir tablonun yapısını döner CreaTabella olduğunu






 CreaTabella korumalı DataTable (DataTable TableSchema)







 {



  



 DataTable tablo = new DataTable ();



  



 foreach (DataColumn dc tableSchema.Columns)



  



 {



    



 tabella.Columns.Add (dc.ColumnName,



    



 dc.DataType);



  



 }



  



 tablo dönmek;







 }



Yöntemleri GetData () ve BindData () aşağıdaki gibi Page_Load olayına denir






 protected void Page_Load (object sender, EventArgs e)







 {



  



 if (IsPostBack)



  



 {



    



 DataTable dt = BindData ();



    



 DataTable elementiTabella this.CreaTabella = (dt);



    



 Session ["elementiTabella"] = elementiTabella;



  



 }







 }



ve sonra her sayfası, veritabanı ve yeniden yükler verilere bağlanmak oluşturulur. Istekleri uygulamalar bu kabul edilebilir değildir binlerce müşteri taleplerini karşılamak için boy için kabul edilebilir ne istemci içinde gelen bir bağlamda. Aslında, veritabanı erişimi işlemleri zaman çok pahalı hediye ve en aza indirilmelidir.

Bu noktada bizim uygulama tarafından yönetilen veri yapısı bazı tahminler yapabilirsiniz. Genellikle değişmez eğer veri her zaman yeniden gerekiyorsa Sadece merak. Böyle bir ihtiyaç varsa biz çok hızlı ve veritabanı (örneğin, bilgisayarın dahili bellek için) bağlantıları olmadan aynı erişimi sağlayan bir ortamda bu tür veri depolama düşünebilirsiniz. Bu şekilde uygulama müşterilerden çok daha fazla eşzamanlı isteklerini karşılar. Bizim uygulama tarafından işlenen veriler çok sık değişiklik olsaydı Açıkçası bu yaklaşım uygun olmaz.

Verileri önbelleğe alma yapmak için adımlar şunlardır:

  1. Belirli bir veri önbellekte olup olmadığını kontrol edin
  2. Kullanarak önbelleğe varsa
  3. O veritabanına bağlanmak için almak için önbellek varsa
  4. Sadece ileride kullanmak üzere önbellek yüklenen öğe Mağaza

Bu noktada biz verileri önbelleğe yönetmek için bu dersin başında gördüğü yöntemlerini değiştirmek olacak. İşte modifiye yöntemi GetData () 'dir






 korumalı DataTable GetData ()







 {



  



 DataTable dt = null;

  

  



 dt = (DataTable) Cache ["TabellaInCache"];

  

  



 if (dt == null)



  



 {



    



 dt = new DataTable ();



    



 strConnection String = "DB Connection string";



    



 DbProviderFactory DbProviderFactories.GetFactory = f ("System.Data.SqlClient");



    



 (DbConnection conn = f.CreateConnection ()) kullanarak



    



 {



      



 conn.ConnectionString = strConnection;



      



 conn.Open ();



      



 DbCommand komut = f.CreateCommand ();



      



 command.CommandText = "TableName seçin *";



      



 command.Connection = conn;



      



 IDataReader okuyucu = Command.ExecuteReader ();



      



 dt.Load (okuyucu);



      



 reader.Close ();



      



 conn.Close ();



    



 }



  



 }



  



 Cache ["TabellaInCache"] = dt;



  



 dt dönmek;







 }



Yeni yöntem GetData () ilk önbelleği tablonun varlığı kontrol edilir. (Dt == null) daha önce yapıldığı gibi oluşturulan, ancak veritabanı bağlantısı ve veri bir parçası varsa çıkarma tamamen atlanır ise tablo yoksa. Her durumda, masa dönmeden önce (Cache ["TabellaInCache"] = dt;) önbellekte saklanır. Bu küçük değişiklikler belirgin sayfa (zaten belli bir zaman oluşturduysanız) yükleme maliyetini düşürebilir.

Açıkçası, bu ders veri önbelleğe alma potansiyel anlamda ve yöntemleri kullanılabilir, önbellek yönetimi için çeşitli yollar keşfetmek ve olanları zaman ben size resmi Microsoft danışmak için davet zaman yararlı olabilir görmek yapmaktır .

Visual Studio ASP.Net ile yardım
E-Öğrenme
ASP (İleri) ASP (İleri)
Dinamik Web siteleri oluşturmak için tam ders. En düşük € 39.
ASP.NET (Ders) ASP.NET (Ders)
49 € Web uygulamaları oluşturmak için tam bir ders.
SQL ve Veritabanı (Ders) SQL ve Veritabanı (Ders)
Ilişkisel veritabanı oluşturma ve yönetme. En düşük € 39.
Sponsor Bağlantılar