..
Podaci caching je koristan alat za poboljšanje performanse bilo kojeg softvera sustava. Ideja je da stavite najčešće korištenih podataka u vrlo moćan uređaj. U stvari, iako je vrijeme pristupa za masovnu pohranu uređaja i dalje se popravlja, primjerice, pristup podacima koji se nalaze na tvrdom disku operacija je još uvijek znatno sporije od njih pristup, dok su u sjećanju. Tako bi podaci dostupni brže koristiti značajno doprinosi poboljšanju performansi naših aplikacija.
U ASP.NET Cache je paralelan s našim aplikacijama i dostupan je putem HttpContext i System.Web.UI.Page. Koristite cache je vrlo slično onome što je vidio za sjednicu objekt, kao što je moguće pristupiti objekata u njoj putem indexer. Osim toga možete kontrolirati trajanje skup objekata i veza između objekata u cache i fizičkih izvora podataka.
Predmemorija upravljanje u ASP.NET je vrlo jednostavan da biste vidjeli kako nastaviti sa primjer. Pretpostavimo da imate GetData () metoda koja omogućuje povezivanje na bazu podataka i vraća datatable
zaštićeni DataTable GetData ()
{
DataTable dt = null;
dt = new DataTable ();
strConnection String = "Povezivanje string DB";
DbProviderFactory f =
DbProviderFactories.GetFactory ("System.Data.SqlClient");
koristite (DbConnection conn = f.CreateConnection ())
{
conn.ConnectionString = strConnection;
conn.Open ();
F. CreateCommand DbCommand naredba = ();
command.CommandText = "SELECT * FROM TableName";
command.Connection = conn;
Command.ExecuteReader IDataReader čitač = ();
dt.Load (čitač);
reader.Close ();
conn.Close ();
}
povratak dt;
}
Također smo još jedan način BindData () koja preslikava podataka vratio GetData () za DataList prisutan u jednom od naših web obrasca
BindData zaštićena DataTable ()
{
DataTable dt;
this.GetData dt = ();
this.DataList1.DataSource = dt;
this.DataBind ();
povratak dt;
}
drugi način da nam je potrebno za naš primjer je CreaTabella koji vraća strukturu tablice prema određenom obrascu
CreaTabella zaštićena DataTable (DataTable tableSchema)
{
DataTable tablice = new DataTable ();
foreach (DataColumn dc tableSchema.Columns)
{
tabella.Columns.Add (dc.ColumnName,
dc.DataType);
}
povratak stol;
}
Metode GetData () i BindData () su pozvani u Page_Load slučaju kako slijedi
zaštićene void Page_Load (objekt pošiljatelja, EventArgs e)
{
if (IsPostBack)
{
DataTable dt = BindData ();
DataTable elementiTabella this.CreaTabella = (DT);
Sjednica ["elementiTabella"] = elementiTabella;
}
}
i onda svaki put kada se stranica je stvorena kada se spojite na bazu podataka i ponovo učitava podatke.
U kontekstu u kojem traži dolaze iz nekoliko klijenata može biti prihvatljivo za aplikacije veličine kako bi zadovoljila zahtjeve tisuća klijenata to nije prihvatljivo.
U stvari, operacija pristup bazi podataka vrlo skupi poklon u vremenu i treba svesti na minimum.
U ovom trenutku možemo napraviti neke procjene o prirodi podataka upravlja naše aplikacije. Samo pitate ako je potrebno ponovno učitati podatke svaki put, ako se ne mijenjaju često. Ako je potrebno nije prisutan možemo misliti za pohranu takvih podataka na medij koji omogućuje pristup istoj vrlo brzo i bez ikakve veze s bazom podataka (na primjer, računala interne memorije). Na taj način program će zadovoljiti mnogo više istodobnih zahtjeva klijenata. Očito, ako se podaci procesuirani od strane našeg zahtjeva će se promijeniti vrlo često takav pristup ne bi bilo primjereno.
Koraci za obavljanje predmemoriranje podataka su:
U ovom trenutku ćemo promijeniti metode koje smo vidjeli u prvom dijelu ove klase za obradu podataka caching. Ovdje je GetData () metoda modificirana
zaštićeni DataTable GetData ()
{
DataTable dt = null;
dt = (DataTable) cache ["TabellaInCache"];
ako (DT == null)
{
dt = new DataTable ();
strConnection String = "Povezivanje string DB";
DbProviderFactory DbProviderFactories.GetFactory f = ("System.Data.SqlClient");
koristite (DbConnection conn = f.CreateConnection ())
{
conn.ConnectionString = strConnection;
conn.Open ();
F. CreateCommand DbCommand naredba = ();
command.CommandText = "SELECT * FROM TableName";
command.Connection = conn;
Command.ExecuteReader IDataReader čitač = ();
dt.Load (čitač);
reader.Close ();
conn.Close ();
}
}
Cache ["TabellaInCache"] = dt;
povratak dt;
}
U novom metodom GetData () prvi je provjeriti postojanje tablicu u cache. Ako tablica ne postoji, ako (DT == null) je stvoren kao što je učinjeno ranije, ali ako postoji dio povezivanja s bazom podataka i ekstrakcija podataka je potpuno zaobići. U svakom slučaju, prije povratka u tablici je pohranjena u cache (cache ["TabellaInCache"] = dt;). Ove male promjene mogu značajno smanjiti troškove utovara stranice (ako ste već stvorili jasnu vrijeme).
Jasno, ovaj sat je da vas osjećaj potencijal caching podataka i pogledate u različite načine za kontrolu cache, metode koje su dostupne i razumjeti što od njih može biti korisno s vremena na vrijeme pozivam vas da konzultirati službene Microsoft .
| |
ASP (Advanced)
Cijeli tečaj za izradu dinamičkih Web stranica. Počevši od 39 €. |
| |
ASP.NET (tečaj)
Cijeli tečaj za izgradnju web aplikacija od 49 €. |
| |
SQL i baze podataka (tečaj)
Stvaranje i upravljanje relacijskim bazama podataka. Počevši od 39 €. |