gpt4 book ai didi

sql-server - Azure SQL 数据库中的异步触发器

转载 作者:行者123 更新时间:2023-12-04 17:54:42 27 4
gpt4 key购买 nike

我希望在 Azure SQL 数据库中实现一些“异步触发器”。有this other question除了 SQL Server 2005/2008 之外,他问了同样的问题,其需求与我的几乎相同。答案是使用 Service Broker。如果 Azure SQL 数据库支持的话,这是一个很好的答案,可以完美满足我的需求,但事实并非如此。

我的具体需求是,我们有一组由用户选择和存储的相当小的输入。其中一些输入是特定算法的标识和一些聚合级数据,全部存储在单个表的单个记录中。保存后,我们需要一个触发器来执行这些选定的算法并处理聚合级数据,将其分解为数万条记录并放入几个不同的表中。处理时间为 2-8 秒,具体取决于算法。 (我确信我可以对此进行更多优化,但我认为我不能比 2-5 秒更快地完成这个任务,因为必须内置逻辑。)

我对在 Azure 中的 VM 内安装 SQL Server 不感兴趣 - 我特别想继续使用 Azure SQL 数据库,原因有很多,我不会在这篇文章中讨论。

所以我的问题是:是否有一种好的/明显的方法可以单独在 Azure SQL 数据库中执行此操作?我想不出一种方法。我能看到的最明显的选项要么不在 Azure SQL 数据库内,要么不适合:

  1. 使用真实触发器而不是异步触发器,但这是一个问题,因为这些触发器根据存储的输入处理数字,需要花费很多秒的时间来处理。
  2. 在数据库中使用穷人的排队系统(即被视为队列并将记录作为消息插入其中的新表)并从外部/外部源(函数或 Web 作业或其他)进行轮询。我真的很想避免这种情况,因为这会增加复杂性和工作量。但坦率地说,如果我不能从这里的聪明人那里得到更好的想法,这就是我所倾向于的!

感谢您的帮助!

<小时/>

(我在这里发布此内容,而不是在 DBA.StackExchange 上,因为这更多的是架构问题,而不是数据库问题。您可能不同意,但因为我当前的最佳选择涉及非数据库开发,而上述问题我对我来说几乎完美的引用也位于此处,我选择在这里发布而不是在那里。)

最佳答案

据我所知,不可能在 Azure SQL 数据库中直接执行此操作,但有几个选项:

正如 @gotqn 在评论中提到的,您可以使用 Azure Automation/Runbooks ; applied to Azure SQL specifically

您还可以查看database jobs

关于sql-server - Azure SQL 数据库中的异步触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41285818/

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