限制AzureSQL中的特定客户端(后台作业)?

问题描述 投票:0回答:1

我们有一个后台工作,该工作每夜(我们所在的时区)运行,但当然是地球上其他地方的“一天当中的一天”。此后台作业会耗尽我们所有可用的AzureSQL资源,以使其尽快运行-这样做会阻止我们在这段时间内最重要的面向用户的查询。

是否有办法限制AzureSQL中的特定客户端?我们对后台作业具有完全控制权,并且可以根据需要调整其连接字符串甚至代码。我们只想在当前没有其他查询时运行它。最好的一种优先值是,我们将面向用户的服务的级别设置为1000,将后台作业的级别设置为10或类似的级别。

注意:尽管我们不能将后台作业移动到数据库的另一个副本,但它必须在主数据库上运行。

azure-sql-database throttling
1个回答
0
投票

在SQL Server实例上,我们可以选择使用资源调控器来将资源(CPU,RAM)限制为特定的工作负载。 Resource Governor是SQL Azure保护机制的一部分,但不可作为我们可以配置的功能使用。

人们投票here要求此功能可以在SQL Azure上使用。

您可以使用sys.dm_db_resource_stats动态管理视图来确定何时不使用Azure SQL数据库启动后台作业。如果您可以将进程划分为很多部分,每个部分需要花费2-3分钟的时间执行,并且依次运行每个部分并在数据库空闲时启动每个部分,那么这可能是一个选择。您可以运行相同的过程,并且如果数据库空闲,则可以在状态表上检查成功运行的最后一部分/步骤,并触发下一部分的执行。

© www.soinside.com 2019 - 2024. All rights reserved.