Я задумался о трех вещах, но в открытых источниках это не нашел:
1) Сколько времени занимает установка соединения с БД?
2) Сколько времени занимает взятие из кеша и добавление?
3) Сколько времени занимает выполнение SELECT?
В общем к делу.
Я имею от 10 до 80 запросов в секунду с такими действиями:
1) открываю соединение.
2) выполняю SELECT за 0,02 ms (эти данные из топа наиболее ресурсоемкие запросы)
3) выполняю SELECT за 0,03 ms (эти данные из топа наиболее ресурсоемкие запросы)
Вот, я задумался о WebCache.
Так я использую соединение с БД. Может есть что-то быстрее?
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
..
}
Кеш использую вот так:
Cache.Get("key");
Cache.Insert("key", data, dep, DateTime.Now.AddSeconds(3600), Cache.NoSlidingExpiration, CacheItemPriority.High, null);
В кеше около 10000 объектов по размеру не более 1КБ.
Не перегружаю, ли я так кеш?
Ну и интересует статистика тех 3-х вопросов и еще?
SqlCommand.ExecuteReader
SqlCommand.ExecuteScalar
Вот, эти б хорошо сравнить.
Еще б сравнить запрос вида:
SELECT name FROM users WHERE id=@id;
С хранимой процедурой.
Очень интересует исследование с точными цифрами.