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

有帮助吗?

解决方案

您需要了解 SqlDependency 的工作原理。你 订阅结果集并在结果集更改时收到通知. 。您可以订阅任何类型的结果集,这意味着任何类型的查询,只要它符合 支持的语句的限制. 。是表还是视图确实没有什么区别。

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

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

如果你想 了解 SqlDependency 的工作原理 我的博客有一些涉及它的文章,包括 SqlDependency 的常见编程陷阱SqlDependency 的部署问题.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top