我想在.net C#应用程序上使用数据缓存。到目前为止,我添加了数据缓存并在特定表上添加了SQL缓存依赖项。但这还不够。这些表将被过于频繁地更新,但是与许多缓存的对象无关。这将使数据缓存几乎无用,因为它将被频繁刷新。我想在每个对象的特定行上实现sql缓存依赖项。我怎样才能做到这一点?
您需要了解SqlDependency的工作方式。您订阅一个结果集,并在该结果集发生更改时得到通知。您可以预订任何类型的结果集,即表示任何类型的查询,只要它符合支持的语句的限制即可。表格或视图实际上并没有什么区别。
因此,从技术上讲,您可以通过提交特定于该行的查询来订阅特定的通知,即。带有硬编码的WHERE子句。您将不得不更改代码以逐行地仅检索和缓存所需的数据,而不是检索整个表并将其缓存在内存中。哎呀,如果您至少担心那些表的大小,则无论如何都必须这样做。仅对不经常更改或根本不更改的目录和参考数据完成整个表的缓存。
您也可以选择检索和缓存数据分区,即。各个键范围(例如“ A”和“ D”,“ E”和“ H”等,并订阅该特定数据分区的通知)。
如果你想了解的SqlDependency是如何工作的我的博客有一些文章覆盖它包括的SqlDependency常见的编程缺陷,并与部署的SqlDependency问题。