..


Рекламные ссылки

Кэширование данных

Кэширование данных является полезным инструментом для повышения эффективности любой системы программного обеспечения. Идея поставить часто используемых данных в очень мощным устройством. На самом деле, хотя время доступа запоминающих устройств большой емкости и далее совершенствовать, например, доступ к данным, хранящимся на жестком диске до сих пор очень медленнее, чем доступ к ним, пока они находятся в памяти. Таким образом предоставлять данные быстрее использовать вносит значительный вклад в улучшение работы нашего приложения.

В кэш ASP.NET параллельно наших приложений и доступна через HttpContext и System.Web.UI.Page. Использование кэш очень похоже на то, что было видно на сессии объекта, как вы можете получить доступ к объектам в его через индексатор. Кроме того, вы также можете контролировать продолжительность набор объектов и связей между объектами в кэш-памяти и физического источника данных.

Управление кэшем в ASP.NET очень просто чтобы посмотреть, как приступить к примеру. Предположим, у вас GetData (), который делает подключение к базе данных и возвращает DataTable






 защищен DataTable GetData ()







 {



  



 DataTable DT = NULL;



  



 DT = новый DataTable ();



  



 strConnection String = "Строка подключения к БД";



  



 DbProviderFactory F =



  



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



  



 Используя (DbConnection сопп = f.CreateConnection ())



  



 {



    



 Соппес = strConnection;



    



 сопп.Ореп ();



    



 DbCommand команда = f.CreateCommand ();



    



 command.CommandText = "SELECT * FROM TableName";



    



 command.Connection = сопп;



    



 IDataReader читатель = Command.ExecuteReader ();



    



 dt.Load (читателя);



    



 reader.Close ();



    



 conn.Close ();



  



 }



  



 возвращение DT;







 }



У нас также есть еще один метод BindData (), которая связывает данные, возвращенные GetData () для DataList настоящее время в одном из наших веб-формы






 BindData защищены DataTable ()







 {



  



 DataTable DT;



  



 this.GetData DT = ();



  



 this.DataList1.DataSource = Л;



  



 this.DataBind ();



  



 возвращение DT;







 }



Другой метод, который нам нужно для нашего примера CreaTabella, которая возвращает структуру таблицы в соответствии с определенным образцом






 CreaTabella защищены DataTable (DataTable tableSchema)







 {



  



 DataTable таблице = новый DataTable ();



  



 Еогеасп (DataColumn постоянного tableSchema.Columns)



  



 {



    



 tabella.Columns.Add (dc.ColumnName,



    



 dc.DataType);



  



 }



  



 возвращение стол;







 }



Методы GetData () и BindData () вызываются в событии Page_Load следующим






 защищен недействительным Page_Load (объект отправителя, EventArgs е)







 {



  



 если (IsPostBack)



  



 {



    



 DataTable DT = BindData ();



    



 DataTable elementiTabella this.CreaTabella = (Л);



    



 Сессия ["elementiTabella"] = elementiTabella;



  



 }







 }



а затем каждый раз, когда страница создана подключении к базе данных и загружает данные. В условиях, когда запросы приходят изнутри клиента, что может быть приемлемо для приложений, размер, чтобы удовлетворить потребности тысяч клиентов это не приемлемо. На самом деле, доступ к базам данных операций очень дорогой подарок во времени и должны быть минимизированы.

На данный момент мы можем сделать некоторые оценки характера данных, управляемых нашего приложения. Просто интересно, если вам нужно перезарядить данных каждый раз, если они не меняются часто. Если есть такая необходимость, мы можем думать о хранении таких данных на носителе, что позволяет получить доступ к тому же очень быстро и без подключения к базе данных (например, компьютера внутренней памяти). В этом случае приложение должно отвечать гораздо больше параллельных запросов от клиентов. Очевидно, что если данные обрабатываются наше приложение будет меняться очень часто этот подход не будет необходимости.

Для этого необходимо сделать кэширование данных являются:

  1. Проверьте правильность приведенных данных в кэше
  2. Если кэшируется с использованием
  3. Если нет кэша, чтобы получить его для подключения к базе данных
  4. Магазин элемент только что загрузили в кэш-памяти для использования в будущем

На данном этапе мы собираемся изменить методы, которые мы видели в начале этого урока для управления кэшированием данных. Вот метод GetData () изменение






 защищен DataTable GetData ()







 {



  



 DataTable DT = NULL;

  

  



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

  

  



 если (Л == NULL)



  



 {



    



 DT = новый DataTable ();



    



 strConnection String = "Строка подключения к БД";



    



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



    



 Используя (DbConnection сопп = f.CreateConnection ())



    



 {



      



 Соппес = strConnection;



      



 сопп.Ореп ();



      



 DbCommand команда = f.CreateCommand ();



      



 command.CommandText = "SELECT * FROM TableName";



      



 command.Connection = сопп;



      



 IDataReader читатель = Command.ExecuteReader ();



      



 dt.Load (читателя);



      



 reader.Close ();



      



 conn.Close ();



    



 }



  



 }



  



 Cache ["TabellaInCache"] = Л;



  



 возвращение DT;







 }



В новый метод GetData () сначала проверяется наличие таблицы в кэш. Если таблица не существует, если (Л == NULL) она создается, как это делалось ранее, но если есть часть соединения с базой данных и извлечения данных, полностью обойдены. В любом случае, прежде чем вернуться к столу, он хранится в кэш-памяти (Cache ["TabellaInCache"] = Л;). Эти небольшие изменения могут существенно снизить затраты на загрузку страницы (если вы уже создали четкие временные).

Очевидно, что этот урок, чтобы вы чувствуете потенциал кэширования данных, а также изучить различные способы управления кэшем, его методы доступны и посмотреть, какие из них может быть полезно время от времени я предлагаю вам ознакомиться с официальным Microsoft .

Помощь в Visual Studio ASP.Net
E-Learning
ASP (Advanced) ASP (Advanced)
Полный курс для создания динамических веб-сайтов. С 39 €.
ASP.NET (курс) ASP.NET (курс)
Полный курс для создания веб-приложений от 49 €.
SQL и базы данных (курс) SQL и базы данных (курс)
Создание и управление реляционными базами данных. С 39 €.
Рекламные ссылки