use*_*723 5 .net sql dependencies caching row
我想在我的.net C#应用程序上使用数据缓存.到目前为止,我添加了数据缓存并在特定表上添加了sql缓存依赖项.但那还不够好.这些表将过于频繁地更新,但与许多缓存对象无关.这将使数据缓存几乎无用,因为它将频繁刷新.我想对每个对象的特定行实现sql cache依赖性.我怎样才能做到这一点?
您需要了解SqlDependency的工作原理.您订阅了结果集,并在结果集发生更改时收到通知.您可以订阅任何类型的结果集,这意味着任何类型的查询,只要它符合受支持的语句的限制.如果是表格或视图,它确实没有区别.
因此,从技术上讲,您可以通过提交特定于该行的查询来订阅特定通知,即.使用硬编码的WHERE子句.您必须更改代码以逐行检索和缓存所需的数据,而不是检索整个表并将其缓存在内存中.哎呀,如果你至少关心那些桌子的大小,你必须这样做.只应对不经常更改或根本不更改的目录和参考数据执行缓存整个表.
您还可以选择检索和缓存数据分区,即.密钥的各个范围(例如在'A'和'D','E'和'H'之间等,并订阅被通知该特定数据分区.
如果你想了解的SqlDependency是如何工作的我的博客有一些文章覆盖它包括的SqlDependency常见的编程缺陷,并与部署的SqlDependency问题.