我的应用程序具有一组固定的SQL查询。这些查询以轮询模式运行,每10秒运行一次。
由于数据库的大小(> 100 GB)和设计(优步进行了标准化),我遇到了性能问题。
每当更改查询结果的数据库上发生CRUD事件时,是否可以对给定查询进行增量更改?例如,如果我查询姓氏为FOO的所有员工,那么我希望每当a)姓氏为FOO的新员工加入b)姓氏为FOO的雇员被解雇等时收到通知。
我正在运行SQL Server 2005,顺便说一句。
谢谢!!
编辑:澄清一下,数据库大小为100GB。查询不是存储过程。数据库是SQL Server
2005(但如果需要,可以升级到2008)。因为数据非常规范化,所以我的查询中有9或10个表的JOIN。因此,这些查询非常慢。即使带有索引。
当前,当民意测验触发时,我在整个数据库上运行查询。是否有任何记录已更改。理想情况下,我想做的就是在服务器上注册查询,并在查询结果集发生任何更改时得到通知。因此,如果添加了一条与我的查询匹配的记录,只需将此更改通知我。我认为这比在轮询循环中重新运行整个查询会更好。这就是我所说的增量。这样,我可以将更改推送给我的客户端,并摆脱轮询。再次感谢您的所有评论!
您可以使用触发器在中间表中记录更改,然后在计划的脚本中处理修改。为了捕获更改,SQL Server
2008引入了一项称为CDC的新功能。有关CDC的更多详细信息,请查看以下文章:
http://blog.sqlauthority.com/2009/09/01/sql-server-download-script-of-change-
data-capture-cdc/
问题内容: 我想通过添加1个月来更新数据库中的month,但是我不知道如何在以下存储过程查询中添加month我在sql中不好,请检查一下 当执行查询时,我必须写些什么才能增加1个月 问题答案: 若要将类型的现有值增加一个月或一个月,请使用: 就像Oleg正确指出的那样,假设您的两个语句具有相同的条件(),那么您可以一次完成此操作:
Sql Delta表和Database ricks Delta表有区别吗?看起来SQL我们在概念的基础上使用这个名字。存储Base表差异的表是Delta。对于数据库是一样的吗?
问题内容: 不知道如何问这个问题,我不是在寻找列中值的总数,而是想递增地计算重复值。例如: 如果我的桌子看起来像这样: 我想在选择期间添加一列,以重复的方式将标签重复,如下所示: 问题答案: 你可以通过做一个关于你的第二列,由第一顺序:
问题内容: 我已将此代码用于提供+1分,但无法正常工作。 $ points变量现在是用户的点数。.我希望它加上一个点数。.例如,如果他有5个点数,它应该是5 + 1 =6。 但是没有,它只是改变了到1 我做错了什么?谢谢 问题答案: 您也可以这样做:
问题内容: 我有一个SQL查询为我提供X个结果,我希望查询输出中有一个叫做count的命令使查询变得像这样: 我怎样才能做到这一点? 问题答案: 好吧,我想这已经足够构成答案了:以下链接指定了两种方法:http : //www.techrepublic.com/blog/microsoft-office/an-access-query-that-returns- every-nth-记录/ 第一种
本文向大家介绍Mybatis 条件查询 批量增删改查功能,包括了Mybatis 条件查询 批量增删改查功能的使用技巧和注意事项,需要的朋友参考一下 模糊查询: 批量添加: 批量删除: 批量修改: 批量查询: 条件查询,if里面不仅可以判空,还可以判断是否满足某个条件 条件查询: 以上所述是小编给大家介绍的Mybatis 条件查询 批量增删改查功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,