当前位置: 首页 > 面试题库 >

如何创建特定于行的sql缓存依赖项?

吴炎彬
2023-03-14
问题内容

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


问题答案:

您需要了解SqlDependency的工作方式。您订阅一个结果集,并在该结果集发生更改时得到通知。您可以预订任何类型的结果集,即表示任何类型的查询,只要它符合支持的语句的限制即可。表格或视图实际上并没有什么区别。

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

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

如果你想了解的SqlDependency是如何工作的我的博客有一些文章覆盖它包括的SqlDependency常见的编程缺陷,并与部署的SqlDependency问题。



 类似资料:
  • 我试图将spring-cloud堆栈用于一个使用Zuul的项目。在我的组织中,我们有一个基于XML的自定义配置堆栈,它执行属性组合和分层重写。由于这种配置的处理方式,我一直在努力为它创建一个PropertySource。 我的自定义PropertySource必须使用我的配置bean,但是因为PropertySources是在spring boot的引导过程中初始化的,所以应用程序上下文还没有完全

  • 我正在做一个有大约200MB依赖项的项目,我希望避免由于带宽有限而导致的无用上传。 当我推我的Dockerfile(我一会儿会附上)时,我总是有一个~200MB的上传,即使我没有碰pom.xml: 这个Dockerfile应该生成一个200MB的fatJAR,包括所有依赖项,这就是为什么每次都会发生~200MB的上传。我想要实现的是构建一个包含所有依赖项的层,并“告诉”打包阶段不要将依赖项JAR包

  • 我想使用Maven创建一个jar,它包含一个特定的依赖工件,并排除一些源java文件。 当前我使用以下代码段: 因此,jar中确实包含了“Guava”工件文件,但是我也希望排除一些源文件(例如src/main/java/my.package/下的特定文件),我该如何做呢?

  • 问题内容: 我的代码中有自定义颜色。我多次使用它们,我只希望分配一次。 如果我们看一下UIColor标头,我们可以看到以下内容: 我创建了一个UIColor,就像这样: 从那里,我既可以使用变量也可以使用函数来轻松使用我的颜色。 可悲的是,我对此并不完全满意。确实,每次我想使用这些颜色时,都会进行新的UIColor分配。 我尝试过的 苹果设法使它们的颜色明显被缓存。我也想这样做。我已经尝试了几件事

  • 问题内容: 最近换用了Go 1.11版本,并正在尝试将我们的项目转换为使用新的模块系统。但是,我在缓存系统方面遇到了一个令人沮丧的问题(到目前为止,由于过去不相关的问题,我一直在使用它,但是模块不可以这样做)。 下面的命令日志基于使用我的系统使用Homebrew进行的全新升级到1.11(我通常使用gvm来安装和管理Go版本,但是为此交换到系统构建中以查看是否是gvm)。我将我的GOPATH设置为一

  • 问题内容: 主题:Heroku问题:在heroku中安装了Node js应用程序之后,我对package.json进行了一些更改。现在,当我尝试再次推送更改时,没有安装新的依赖项。Heroku正在从缓存中选择依赖项。 如何禁用heroku中的缓存? 问题答案: 谢谢大家的回应。 经过大量的搜索并花了很多时间在我的问题上,我得以解决我的问题。我认为,如果有人面临类似的困境,最好发布答案。 以下是文档