..


Link-uri sponsorizate

Detalii de Caching

Caching de date este un instrument util pentru îmbunătăţirea performanţei a oricărui sistem de software. Ideea este de a pune datele utilizate frecvent într-un dispozitiv foarte puternic. Într-adevăr, deşi timpul de acces la dispozitivele de stocare în masă continua să se îmbunătăţească, de exemplu, accesul la datele aflate pe un hard-disk este încă un foarte lent decât accesarea acestora în timp ce acestea sunt în memorie. Astfel, pune la dispoziţie date mai rapid folosite contribuie în mod semnificativ pentru a îmbunătăţi performanţa aplicaţiilor noastre.

În Cache ASP.NET este paralel cu aplicatiile noastre si este disponibil prin intermediul HttpContext şi System.Web.UI.Page. Utilizaţi Cache este foarte asemănător cu ceea ce a fost observat pentru obiect Session, astfel cum puteţi obţine acces la obiectele în acesta printr-un indexator. În plus, aveţi posibilitatea de a controla, de asemenea, durata de set de obiecte şi a conexiunilor dintre obiecte în cache şi fizice sursa de date.

Conducerea cache în ASP.NET este foarte simplu de a vedea cum să procedeze cu un exemplu. Presupunem că aveţi o GetData () metoda care face o conexiune la o bază de date şi returnează un DataTable






 protejate DataTable GetData ()







 {



  



 DataTable dt = null;



  



 dt = new DataTable ();



  



 String strConnection = "şir de conexiune la DB";



  



 DbProviderFactory f =



  



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



  



 folosind (DbConnection conn = f.CreateConnection ())



  



 {



    



 conn.ConnectionString = strConnection;



    



 conn.Open ();



    



 DbCommand comanda = f.CreateCommand ();



    



 command.CommandText = "SELECT * FROM nume_tabela";



    



 command.Connection = conn;



    



 IDataReader cititor = Command.ExecuteReader ();



    



 dt.Load (cititor);



    



 reader.Close ();



    



 conn.Close ();



  



 }



  



 întoarcere dt;







 }



Avem, de asemenea, o altă metodă BindData (), care asociază datele returnate de GetData () pentru un cadou DataList intr-unul din formularul de Web






 BindData protejat DataTable ()







 {



  



 DataTable dt;



  



 this.GetData dt = ();



  



 this.DataList1.DataSource = dt;



  



 this.DataBind ();



  



 întoarcere dt;







 }



O alta metoda de care avem nevoie pentru exemplul nostru este CreaTabella care returnează structura unui tabel în conformitate cu un anumit ritm






 CreaTabella protejate DataTable (DataTable tableSchema)







 {



  



 DataTable tabel = new DataTable ();



  



 foreach (DataColumn dc tableSchema.Columns)



  



 {



    



 tabella.Columns.Add (dc.ColumnName,



    



 dc.DataType);



  



 }



  



 întoarcere de masă;







 }



Metode GetData () şi BindData () sunt numite în cazul Page_Load, după cum urmează






 protejate nule Page_Load (obiect expeditor, EventArgs e)







 {



  



 dacă (IsPostBack)



  



 {



    



 DataTable dt = BindData ();



    



 DataTable elementiTabella this.CreaTabella = (dt);



    



 Sesiunea ["elementiTabella"] = elementiTabella;



  



 }







 }



şi apoi de fiecare dată când pagina este creat când vă conectaţi la baza de date şi încarcă de date. Într-un context în care cererile provin din cadrul clientului ceea ce ar putea fi acceptabile pentru cererile de dimensiuni pentru a satisface cerinţele de mii de clienti acest lucru nu este acceptabil. De fapt, operaţiunile de bază de date de acces cadou foarte costisitoare în timp şi ar trebui să fie redusă la minimum.

În acest moment, putem face unele estimări cu privire la natura datelor gestionate prin aplicarea noastre. Doar întrebam dacă aveţi nevoie pentru a reîncărca de date de fiecare dată în cazul în care nu se schimba de multe ori. Dacă există o astfel de nevoie ne putem gândi de stocare a datelor pe un astfel de mediu, care permite accesul la aceleaşi foarte rapid şi fără conexiuni la baza de date (de exemplu, computerul de memorie internă). În acest fel, cererea va satisface cererile de mult mai multe concurente din partea clientilor. Evident, în cazul în care datele prelucrate de a aplicaţiei noastre s-ar schimba foarte des această abordare nu ar fi adecvată.

Paşii de a face cache de date sunt:

  1. Verificaţi dacă o Datele oferite se află în cache
  2. Dacă există în cache cu ajutorul
  3. Dacă nu există nici un cache-ul să-l să se conecteze la baza de date
  4. Păstra elementul doar încărcate în memoria cache pentru o utilizare viitoare

La acest punct vom schimba metodele pe care am văzut la începutul acestei lecţii pentru gestionarea datelor caching. Aici este GetData metoda () modificat






 protejate DataTable GetData ()







 {



  



 DataTable dt = null;

  

  



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

  

  



 dacă (DT == null)



  



 {



    



 dt = new DataTable ();



    



 String strConnection = "şir de conexiune la DB";



    



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



    



 folosind (DbConnection conn = f.CreateConnection ())



    



 {



      



 conn.ConnectionString = strConnection;



      



 conn.Open ();



      



 DbCommand comanda = f.CreateCommand ();



      



 command.CommandText = "SELECT * FROM nume_tabela";



      



 command.Connection = conn;



      



 IDataReader cititor = Command.ExecuteReader ();



      



 dt.Load (cititor);



      



 reader.Close ();



      



 conn.Close ();



    



 }



  



 }



  



 Cache ["TabellaInCache"] = dt;



  



 întoarcere dt;







 }



În GetData noua metodă () se verifică în primul rând existenţa din tabelul de la cache. În cazul în care tabelul nu există în cazul în care (dt == null) este creat ca a fost facut anterior, dar dacă există o parte din conexiune de date şi extragere de date este complet izolate. În orice caz, înainte de a reveni la masa sunt stocate în memoria cache (cache ["TabellaInCache"] = dt;). Aceste modificări mici pot reduce semnificativ costurile de încărcare a paginii (dacă aţi creat deja un timp clar).

În mod evident, această lecţie este de a te face sens potenţialul de cache de date şi pentru a explora diverse modalităţi de gestionare a memoriei cache, metodele sale disponibile şi a vedea care dintre ele ar putea fi utile din când în când vă invit să vă consulte oficial Microsoft .

Ajutor cu Visual Studio ASP.Net
E-Learning
ASP (avansat) ASP (avansat)
Ciclu complet pentru crearea de site-uri Web dinamice. De la 39 €.
ASP.NET (Curs) ASP.NET (Curs)
Ciclu complet pentru construirea de aplicatii Web de la 49 €.
SQL si baze de date (Curs) SQL si baze de date (Curs)
Crearea şi gestionarea bazelor de date relaţionale. De la 39 €.
Link-uri sponsorizate