..


Gesponsorde links

Caching van gegevens

De data-caching is een handig hulpmiddel voor het verbeteren van de prestaties van een software systeem. Het idee is om vaak gebruikte gegevens in een zeer krachtig apparaat. In feite, hoewel de tijd van de toegang tot apparaten voor massaopslag blijven verbeteren, bijvoorbeeld toegang tot gegevens die zich op een harde schijf is nog steeds een zeer langzamer dan benaderen ze terwijl ze in het geheugen. Dus beschikbaar stellen van de gegevens sneller worden gebruikt draagt ​​aanzienlijk bij tot het verbeteren van de prestaties van onze applicaties.

In de ASP.NET Cache is parallel met onze applicaties en is beschikbaar via HttpContext en System.Web.UI.Page. Gebruik maken van de Cache is erg vergelijkbaar met wat werd gezien voor de sessie object, als je kunt toegang krijgen tot objecten in het via een indexer. Daarnaast kunt u ook controle over de duur van de set van objecten en verbindingen tussen objecten in de cache en de fysieke gegevensbron.

De cache management in ASP.NET is zeer eenvoudig om te zien hoe door te gaan met een voorbeeld. Stel je hebt een GetData () methode die een verbinding maakt met een databank en retourneert een DataTable






 beschermde DataTable GetData ()







 {



  



 DataTable dt = null;



  



 dt = new DataTable ();



  



 strConnection String = "Verbinding string DB";



  



 DbProviderFactory f =



  



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



  



 met behulp van (DbConnection conn = f.CreateConnection ())



  



 {



    



 conn.ConnectionString = strConnection;



    



 conn.Open ();



    



 DbCommand command = f.CreateCommand ();



    



 command.CommandText = "Select * FROM tabelnaam";



    



 command.Connection = conn;



    



 IDataReader reader = Command.ExecuteReader ();



    



 dt.Load (lezer);



    



 reader.Close ();



    



 conn.Close ();



  



 }



  



 return dt;







 }



We hebben ook een andere methode BindData () dat medewerkers de gegevens geretourneerd door GetData () om een ​​DataList aanwezig is in een van ons webformulier






 BindData beschermde DataTable ()







 {



  



 DataTable dt;



  



 this.GetData dt = ();



  



 this.DataList1.DataSource = dt;



  



 this.DataBind ();



  



 return dt;







 }



Een andere methode die we nodig hebben voor ons voorbeeld is CreaTabella dat de structuur van een tabel terug volgens een bepaald patroon






 CreaTabella beschermde DataTable (DataTable tableSchema)







 {



  



 DataTable tabel = new DataTable ();



  



 foreach (DataColumn dc tableSchema.Columns)



  



 {



    



 tabella.Columns.Add (dc.ColumnName,



    



 dc.DataType);



  



 }



  



 terug tafel;







 }



Methoden GetData () en BindData () worden aangeroepen in de gebeurtenis Page_Load als volgt






 protected void Page_Load (object sender, EventArgs e)







 {



  



 if (IsPostBack)



  



 {



    



 DataTable dt = BindData ();



    



 DataTable elementiTabella this.CreaTabella = (dt);



    



 Session ["elementiTabella"] = elementiTabella;



  



 }







 }



en dan elke keer dat de pagina is gemaakt u een verbinding met de database en laadt de gegevens. In een context waarin verzoeken komen vanuit de klant wat aanvaardbaar zou kunnen zijn voor toepassingen aangepast aan de eisen van duizenden klanten te voldoen is dit niet aanvaardbaar. In feite moet de toegang tot de database operaties erg duur geschenk in de tijd en een minimum worden beperkt.

Op dit punt kunnen we enkele schattingen van de aard van de gegevens worden beheerd door onze applicatie. Gewoon af als u de gegevens opnieuw laden elke keer als ze niet vaak veranderen. Als er zo'n behoefte kunnen we denken aan het opslaan van deze gegevens op een medium dat de toegang tot dezelfde staat zeer snel en zonder verbinding met de database (bijvoorbeeld de computer het interne geheugen). Op deze manier de applicatie zou voldoen aan veel meer gelijktijdige verzoeken van klanten. Duidelijk dat als de gegevens die worden verwerkt door onze toepassing zou vaak van deze aanpak zou niet geschikt zijn.

De stappen om data caching doen zijn:

  1. Controleren of een bepaalde gegevens in de cache
  2. Als er in de cache met behulp van
  3. Als er geen cache om het te krijgen om verbinding met de database
  4. Bewaar het element net geladen in de cache voor toekomstig gebruik

Op dit punt gaan we de methoden die we zagen aan het begin van deze les voor het beheren van data caching te wijzigen. Hier is de methode GetData () gewijzigd






 beschermde DataTable GetData ()







 {



  



 DataTable dt = null;

  

  



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

  

  



 if (dt == null)



  



 {



    



 dt = new DataTable ();



    



 strConnection String = "Verbinding string DB";



    



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



    



 met behulp van (DbConnection conn = f.CreateConnection ())



    



 {



      



 conn.ConnectionString = strConnection;



      



 conn.Open ();



      



 DbCommand command = f.CreateCommand ();



      



 command.CommandText = "Select * FROM tabelnaam";



      



 command.Connection = conn;



      



 IDataReader reader = Command.ExecuteReader ();



      



 dt.Load (lezer);



      



 reader.Close ();



      



 conn.Close ();



    



 }



  



 }



  



 Cache ["TabellaInCache"] = dt;



  



 return dt;







 }



In de nieuwe methode GetData (), wordt eerst gecontroleerd het bestaan ​​van de tabel in de cache. Als de tabel niet bestaat if (dt == null) is het gemaakt zoals eerder werd gedaan, maar als er een deel van de database verbinding en data-extractie is volledig omzeild. In ieder geval, alvorens terug te keren naar de tafel het wordt opgeslagen in de cache (Cache ["TabellaInCache"] = dt;). Deze kleine veranderingen kunnen aanzienlijke vermindering van de kosten van het laden van de pagina (als u al een duidelijke tijd gemaakt).

Het is duidelijk, deze les is om je zin is het potentieel van caching van gegevens en aan de verschillende manieren te verkennen om cache management, haar methoden beschikbaar zijn en zien welke nuttig kan zijn van tijd tot tijd nodig ik u uit op de officiële Microsoft te raadplegen .

Hulp met Visual Studio ASP.Net
E-Learning
ASP (Advanced) ASP (Advanced)
Volledige cursus voor het maken van dynamische websites. Van 39 €.
ASP.NET (Cursus) ASP.NET (Cursus)
Volledige cursus voor het bouwen van webapplicaties van 49 €.
SQL en Database (Cursus) SQL en Database (Cursus)
Maken en beheren van relationele databases. Van 39 €.
Gesponsorde links