5

我想在我的 .net C# 应用程序上使用数据缓存。到目前为止,我添加了数据缓存并在特定表上添加了 sql 缓存依赖项。但这还不够好。这些表会更新得太频繁,但与很多缓存对象无关。这将使数据缓存几乎无用,因为它会被频繁刷新。我想对每个对象的特定行实现 sql 缓存依赖。我怎样才能做到这一点?

4

1 回答 1

5

您需要了解 SqlDependency 的工作原理。您订阅一个结果集并在该结果集发生更改时收到通知。您可以订阅任何类型的结果集,即任何类型的查询,只要它符合受支持语句的限制即可。如果是表格或视图,这真的没有区别。

因此,从技术上讲,您可以通过提交特定于该行的查询来订阅特定通知,即。带有硬编码的 WHERE 子句。您必须更改代码以逐行检索和缓存所需的数据,而不是检索整个表并将它们缓存在内存中。哎呀,如果您至少关心这些表的大小,那么无论如何您都必须这样做。只应为不经常更改或根本不更改的目录和参考数据缓存整个表。

您还可以选择检索和缓存数据的分区,即。各个键范围(比如在“A”和“D”、“E”和“H”等之间,并订阅该特定数据分区的通知。

如果您想了解 SqlDependency 的工作原理,我的博客中有一些文章涵盖了它,包括SqlDependency 的常见编程陷阱和 SqlDependency 的部署问题

于 2009-06-02T18:21:01.743 回答