..


Sponzorované odkazy

Ukládání do vyrovnávací paměti dat

Data do mezipaměti je užitečný nástroj pro zlepšení výkonu jakéhokoli softwaru systému. Cílem je dát nejčastěji používaných dat ve velmi silné zařízení. Ve skutečnosti, i když doba přístupu k mass storage zařízení se nadále zlepšuje, například přístup k data uložená na pevném disku, provoz je stále mnohem pomalejší, než se k nim, zatímco oni jsou v paměti. Tak, aby byla data k dispozici rychleji použití významně přispívá ke zlepšení výkonnosti našich aplikací.

V mezipaměti ASP.NET je rovnoběžná s naší aplikací a je k dispozici prostřednictvím HttpContext a System.Web.UI.Page. Použití cache je velmi podobný tomu, co bylo vidět na zasedání objektu, je možné přístup k objektům v něm přes indexer. Kromě toho můžete také nastavit dobu trvání souboru objektů a spojení mezi objekty v cache a fyzické zdroje dat.

Vyrovnávací řízení v ASP.NET je velmi jednoduché, jak se bude postupovat při příklad. Předpokládejme, že máte GetData (), která umožňuje připojení k databázi a vrátí DataTable






 chráněny DataTable GetData ()







 {



  



 DataTable dt = null;



  



 dt = new DataTable ();



  



 strConnection String = "řetězec připojení k DB";



  



 DbProviderFactory f =



  



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



  



 použití (DBConnection conn = f.CreateConnection ())



  



 {



    



 conn.ConnectionString = strConnection;



    



 conn.Open ();



    



 F. CreateCommand DbCommand command = ();



    



 command.CommandText = "Select * from TableName";



    



 command.Connection Conn =;



    



 Command.ExecuteReader IDataReader reader = ();



    



 dt.Load (čtenář)



    



 reader.Close ();



    



 Conn.Close ();



  



 }



  



 návrat dt;







 }



Máme také další metodu BindData (), která mapuje dat vrácených GetData () pro datalist současné době v jednom z našich webového formuláře






 BindData chráněné DataTable ()







 {



  



 DataTable dt;



  



 this.GetData dt = ();



  



 this.DataList1.DataSource = dt;



  



 this.DataBind ();



  



 návrat dt;







 }



další metoda, která potřebujeme pro náš příklad je CreaTabella, která vrací strukturu tabulky podle určitého vzoru






 CreaTabella chráněné DataTable (DataTable tableSchema)







 {



  



 DataTable tabulka = new DataTable ();



  



 foreach (DataColumn dc tableSchema.Columns)



  



 {



    



 tabella.Columns.Add (dc.ColumnName,



    



 dc.DataType);



  



 }



  



 návrat tabulce;







 }



Metody GetData () a BindData () jsou volány v události Page_Load takto






 protected void Page_Load (object sender, EventArgs e)







 {



  



 if (IsPostBack)



  



 {



    



 DataTable dt = BindData ();



    



 DataTable elementiTabella this.CreaTabella = (dt);



    



 Session ["elementiTabella"] = elementiTabella;



  



 }







 }



a pak pokaždé, když se stránka je vytvořena připojení k databázi a načte data. V situaci, kdy dotazech na několik klientů to může být přijatelné pro aplikace, velikosti, aby splňovaly požadavky tisíců klientů, to není přijatelné. Ve skutečnosti, operace pro přístup k databázi velmi drahý dárek v čase a mělo by být minimalizováno.

Na tomto místě můžeme některé odhady z povahy údajů spravovaných naší aplikace. Jen jestli budete potřebovat pro aktualizaci dat pokaždé, když se často nemění. Je-li to nutné není k dispozici, můžeme myslet na ukládání těchto dat na médium, které umožňuje přístup ke stejným velmi rychle a bez připojení k databázi (například počítače vnitřní paměti). Tímto způsobem aplikace by se setkal mnohem více souběžných požadavků klientů. Je zřejmé, že v případě, že údaje zpracované naší aplikace by se mění velmi často tento přístup by nebylo vhodné.

Kroky pro cache dat jsou:

  1. Zkontrolujte, zda je daná data v cache
  2. Dojde-li v mezipaměti pomocí
  3. Není-li vyrovnávací paměť, aby si to se připojit k databázi
  4. Uložit záznam právě vložený do mezipaměti pro budoucí použití

V tuto chvíli se chystáme změnit metody, které jsme viděli na začátku této třídy pro zpracování dat do mezipaměti. Zde je GetData () Metoda modifikované






 chráněny DataTable GetData ()







 {



  



 DataTable dt = null;

  

  



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

  

  



 if (dt == null)



  



 {



    



 dt = new DataTable ();



    



 strConnection String = "řetězec připojení k DB";



    



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



    



 použití (DBConnection conn = f.CreateConnection ())



    



 {



      



 conn.ConnectionString = strConnection;



      



 conn.Open ();



      



 F. CreateCommand DbCommand command = ();



      



 command.CommandText = "Select * from TableName";



      



 command.Connection Conn =;



      



 Command.ExecuteReader IDataReader reader = ();



      



 dt.Load (čtenář)



      



 reader.Close ();



      



 Conn.Close ();



    



 }



  



 }



  



 Cache ["TabellaInCache"] = dt;



  



 návrat dt;







 }



V nové metodě GetData () je první kontroluje existenci tabulky v cache. Pokud je v tabulce neexistuje if (dt == null) je vytvořen, jako tomu bylo dříve, ale pokud je součástí databáze připojení a získávání dat je zcela obejít. V každém případě, než se vrátí ke stolu je uložen ve vyrovnávací paměti (Cache ["TabellaInCache"] = dt;). Tyto malé změny mohou výrazně snížit náklady na načtení stránky (pokud jste již vytvořili jasný časový).

Je zřejmé, že tato lekce je, aby se cítíte potenciál cache dat a podívat se na různé způsoby, jak řídit cache, dostupné metody a zjistit, které z nich mohou být užitečné čas od času vás zvu nahlédnout do Úředního Microsoft .

ASP.Net pomocí nápovědy Visual Studio
E-Learning
ASP (Advanced) ASP (Advanced)
Celý kurz pro tvorbu dynamických webových stránek. Od 39 €.
ASP.NET (kurz) ASP.NET (kurz)
Celý kurz pro tvorbu webových aplikací od 49 €.
SQL a databáze (kurz) SQL a databáze (kurz)
Vytváření a správa relační databáze. Od 39 €.
Sponzorované odkazy