我正在将旧的应用程序从“老而好”的SQL服务器迁移到Azure SQL。到现在为止还好。
旧的解决方案使用作业代理( Job )启动usp_data_pump,从第三方数据库获取数据。第一次运行(我的数据库为空)大约需要30分钟。由于添加了优化,当另一个数据库中的监视数据没有变化时,下一次运行大约需要5秒。这可能需要更多的时间,但是--因为数据是如何创建的--还需要几秒钟。然而,在某些情况下,我的数据库内容可以“重置”(用户操作),然后它可以再次花费这30分钟左右。
我需要每5分钟输入一次数据,以得到微小的变化。
由于Azure SQL没有作业代理,所以我决定使用及其标准计划程序每5分钟执行一次launcher.exe,它只连接到Azure,执行usp_data_pump存储过程并停止。然而,当调度程序运行时,它将“永远”运行。
我不知道会发生什么。第一个想法是,launcher.exe是在5分钟后再次启动的,而之前的任务还没有完成。但是,在计划任务的“设置”选项卡中,选项被设置为.
不要启动新实例
首先,如何实现usp_data_pump程序的周期性、排他性执行。事务不能在内部使用。
发布于 2021-02-21 03:55:06
Azure SQL数据库为我们提供了两个自动作业: Azure MI的SQL代理和Azure SQL数据库的弹性作业,您可以使用弹性作业来执行您的存储过程。
参考本文档:使用弹性作业自动化管理任务
弹性工作代理是免费的。作业数据库的计费速率与Azure SQL数据库中的任何数据库相同。
HTH。
https://stackoverflow.com/questions/66190542
复制相似问题