如何使用外部 launcher.exe 独占启动 SQL 用户定义过程,无需事务?
How to launch SQL user defined procedure exclusively, without transaction, using external launcher.exe?
我正在将较旧的应用程序从内部部署的“老旧”SQL 服务器迁移到 Azure SQL。到目前为止,还不错。
旧的解决方案使用 Job Agent 来启动 usp_data_pump
以从第 3 方数据库获取一些数据。第一个 运行(让我的数据库为空)大约需要 30 分钟。由于添加了优化,接下来的 运行 秒需要大约 5 秒,而其他数据库中监视的数据没有变化。这可能需要更多时间,但是——由于数据的创建方式——它仍然需要几秒钟。但是,在某些情况下,我的数据库内容可能会被“重置”(用户操作),然后可能会再次花费 30 分钟左右的时间。
我需要每 5 分钟抽取一次数据以获得微小的变化。
由于 Azure SQL 没有作业代理,我决定使用附近的 Azure Windows 服务器及其标准调度程序每 5 分钟执行一次 launcher.exe
连接到 Azure SQL 服务器,执行 usp_data_pump
存储过程并停止。然而,当调度器起作用时,它运行是“永远”的。
我不确定会发生什么。第一个想法是 launcher.exe
在前一个尚未完成任务的 5 分钟后再次启动。但是,在计划任务的“设置”选项卡中设置了选项...
Do not start new instance
首先,如何实现usp_data_pump
过程的周期性独占执行。交易不得在内部使用。
Azure SQL 数据库为我们提供了两个自动作业 SQL Azure MI 代理和 Azure SQL 数据库的弹性作业 您可以使用弹性作业来执行存储过程。
参考此文档:Automate management tasks using elastic jobs:
- 您可以创建和安排可以定期执行的弹性作业
针对一个或多个 Azure SQL 数据库执行到 运行 Transact-SQL
(T-SQL)查询和执行维护任务。
Elastic Job 代理是免费的。作业数据库的收费标准与 Azure SQL 数据库中的任何数据库相同。
HTH.
我正在将较旧的应用程序从内部部署的“老旧”SQL 服务器迁移到 Azure SQL。到目前为止,还不错。
旧的解决方案使用 Job Agent 来启动 usp_data_pump
以从第 3 方数据库获取一些数据。第一个 运行(让我的数据库为空)大约需要 30 分钟。由于添加了优化,接下来的 运行 秒需要大约 5 秒,而其他数据库中监视的数据没有变化。这可能需要更多时间,但是——由于数据的创建方式——它仍然需要几秒钟。但是,在某些情况下,我的数据库内容可能会被“重置”(用户操作),然后可能会再次花费 30 分钟左右的时间。
我需要每 5 分钟抽取一次数据以获得微小的变化。
由于 Azure SQL 没有作业代理,我决定使用附近的 Azure Windows 服务器及其标准调度程序每 5 分钟执行一次 launcher.exe
连接到 Azure SQL 服务器,执行 usp_data_pump
存储过程并停止。然而,当调度器起作用时,它运行是“永远”的。
我不确定会发生什么。第一个想法是 launcher.exe
在前一个尚未完成任务的 5 分钟后再次启动。但是,在计划任务的“设置”选项卡中设置了选项...
Do not start new instance
首先,如何实现usp_data_pump
过程的周期性独占执行。交易不得在内部使用。
Azure SQL 数据库为我们提供了两个自动作业 SQL Azure MI 代理和 Azure SQL 数据库的弹性作业 您可以使用弹性作业来执行存储过程。
参考此文档:Automate management tasks using elastic jobs:
- 您可以创建和安排可以定期执行的弹性作业 针对一个或多个 Azure SQL 数据库执行到 运行 Transact-SQL (T-SQL)查询和执行维护任务。
Elastic Job 代理是免费的。作业数据库的收费标准与 Azure SQL 数据库中的任何数据库相同。
HTH.