检测SQL Azure是否正在限制

检测SQL Azure是否正在限制,azure,azure-sql-database,throttling,Azure,Azure Sql Database,Throttling,我有一个Azure worker角色,可以将一批记录插入表中。昨天,插入记录最多只花了5分钟,但今天却花了几个小时。我怀疑进程正在被限制,但我没有发现任何异常。SQL Azure是否总是在您被限制时返回错误,或者是否有其他方法检测您是否被限制?在CPU限制的情况下,SQL数据库不会抛出错误,但会减慢操作。此时,除了可能查看查询统计信息以告知工作进展缓慢(如果您的CPU时间低于正常情况)之外,没有任何机制来确定是否正在进行这种形式的限制。有关此行为的详细信息,请查看此链接:(查找“由引擎节流监控的

我有一个Azure worker角色,可以将一批记录插入表中。昨天,插入记录最多只花了5分钟,但今天却花了几个小时。我怀疑进程正在被限制,但我没有发现任何异常。SQL Azure是否总是在您被限制时返回错误,或者是否有其他方法检测您是否被限制?

在CPU限制的情况下,SQL数据库不会抛出错误,但会减慢操作。此时,除了可能查看查询统计信息以告知工作进展缓慢(如果您的CPU时间低于正常情况)之外,没有任何机制来确定是否正在进行这种形式的限制。有关此行为的详细信息,请查看此链接:(查找“由引擎节流监控的性能阈值”)。

一个较新的功能是监控SQL Azure数据库的未完成请求数。您可以使用此查询执行此操作:

从sys.dm_exec_请求中选择count(*)

正如您将在本文中看到的,达到工作线程的限制是被限制的一个关键原因。这里还记录了当您接近180个工作线程时,可能会受到限制


这是SQL Azure监视服务中用于检测问题的内容之一。[免责声明:我使用此服务]

但是对于非CPU节流,通常会出现异常,错误代码指示节流类型。是的,您是正确的。所有这些都广泛地记录在我提供的链接中。问题是SQLAzure在被限制时是否“始终”返回错误代码。答案是否定的,不总是这样。对于问题的第二部分,如果有另一种检测节流的方法,答案也是否定的。在CPU节流的情况下不是这样。