2012-07-11 36 views
3

我有一个Azure辅助角色,它将一批记录插入表中。昨天,插入记录最多花费5分钟,但今天花费了几个小时。我怀疑这个过程受到限制,但我没有任何例外。如果您受到限制,SQL Azure总是返回错误,还是有另一种方法检测您是否受到限制?检测SQL Azure是否受到限制

回答

3

在CPU限制的情况下,SQL数据库不会引发错误,但会降低操作速度。目前还没有机制来确定这种形式的节流是否发生,除了可能查看查询统计信息,告诉工作正在缓慢发生(如果您的CPU时间比平时低)。检查此链接以获取有关此行为的详细信息:performance and elasticity guid(查找“通过引擎限制监控的性能阈值”)。

+0

但是对于非CPU节流,您通常会得到一个异常,并显示一个指示节流类型的错误代码。 – 2012-07-11 19:12:18

+0

是的,你是对的。所有这些都在我提供的链接中被广泛记录。问题是如果SQL Azure“总是”在被限制时返回一个错误代码。答案是不。不总是。对于问题的第二部分,如果有另一种检测节流的方法,答案也是否定的。不在CPU调节的情况下。 – 2012-07-12 12:28:29

2

更新的功能之一是能够监视SQL Azure数据库具有的未完成请求的数量。您可以使用此查询做到这一点:从sys.dm_exec_requests视图

SELECT COUNT(*)正如你将在这个documentation达到工作线程的限制看到是在节流的关键原因。此处还记录了当您处理180个工作线程时,您可能会受到限制。

这是用于SQL Azure的Cotega监视服务中用于检测问题的一件事情。 [免责声明:我在这项服务上工作]