Использует ли SqlCacheDependency опрос или уведомление о запросе?

Мне нужно создать простую структуру конфигурации поверх таблицы ключевых значений. Поскольку это часто используется и редко изменяется, я бы предпочел кэшировать значения таблицы. Одно из требований: если значение изменено в БД, оно должно немедленно отразиться в приложении. Итак, я планировал реализовать SqlCacheDependency. Док говорит

Механизм уведомления о запросе SQL Server 2005 обнаруживает изменения в данных, которые делают недействительными результаты SQL-запроса, и удаляет все кэшированные элементы, связанные с SQL-запросом, из System.Web.Caching.Cache

В образце я заметил, что в конфигурации есть свойство под названием PollTime. Док говорит

Возвращает или задает частоту, с которой SqlCacheDependency опрашивает таблицу базы данных на предмет изменений.

Я не понимаю, использует ли он метод уведомления о запросе или механизм опроса.

Мой стек - .NET 4.0 и SQL Server 2008 R2.


person Ramesh    schedule 16.06.2014    source источник


Ответы (1)


Начиная с SqlServer 2005 и далее (и, следовательно, применимо к sqlserver 2008R2), Sql Cache Dependency работает с использованием механизма уведомления об изменении запроса. Они используют встроенную в базу данных инфраструктуру уведомлений и систему обмена сообщениями, называемую Service Broker .

Sql server 2000 и более ранние версии использовали механизм опроса.

вы можете быть заинтересованы в дальнейшем чтении, как предложено ниже:

Джесс Либерти, автор книги: программирование в asp.net (Oreilly Media) говорит:

Нет необходимости настраивать базу данных с помощью aspnet_regsql.exe, и нет необходимости добавлять элемент <sqlCacheDependency> в ваш web.config, если вы используете sqlserver 2005 или более позднюю версию с механизмом уведомления о запросах.

MSDN также говорит, что :: Этот параметр конфигурации, то есть <sqlCacheDependency>, не действует, когда вы используете элемент sqlCacheDependency вместе с уведомлениями о запросах в SQL Server 2005. Это означает, что установка pollTime не будет иметь никакого эффекта при использовании уведомлений о запросах .

person R.C    schedule 16.06.2014