gpt4 book ai didi

sql - 增量 SQL 查询

转载 作者:行者123 更新时间:2023-12-04 03:14:50 27 4
gpt4 key购买 nike

我的应用程序有一组固定的 SQL 查询。这些查询以轮询模式运行,每 10 秒一次。

由于数据库的大小(> 100 GB)和设计( super 标准化),我遇到了性能问题。

每当数据库上发生更改查询结果的 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/

关于sql - 增量 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com