什么是"资源使用过多"在SQL Azure中?

时间:2012-02-04 20:08:23

标签: sql azure azure-sql-database

我在网上搜索了一下SQL Azure上“资源使用率过高”的情况,仍然无法理解。

有些文章认为查询耗时太长,内存过多等会导致“资源使用过多”。但是如果我使用简单的查询,简单的数据结构,会发生什么?

例如:我将1G SQL Azure作为会话状态。由于session是一个非常小的字符串,并且一直保存/删除,我认为它不会同时增长到1G的数百万个会话。你可以计算,对于1百万个会话,每个20个字符,只需要20M空间,考虑20分钟到期等。甚至不能接近1G。但是查询应该很多很多。通过索引,每个查询都非常简单快捷。

我想知道,如果将此用途视为“资源使用过多”?是否有任何硬数限制您的使用?

顺便说一下,如上所示,如果所有这些都发生在同一个数据中心,那么所有费用都是1G数据库,每月10美元,对吗?

1 个答案:

答案 0 :(得分:3)

不幸的是答案是'这取决于'。我认为可能是SQL Azure查询节流的最佳参考(有指导):TechNet Article on SQL Azure Perormance这将提供有关受监控指标和节流机制的详细信息。

我之所以说这取决于任何给定用户的节流是不确定的。这是因为将根据节点上的总负载(Azure DC中的物理SQL Server)激活节流。虽然将受到限制的订户是提供最大负载的订户,但是节流器启动的级别将取决于节点上的总负载。因此,如果您在一个安静的节点(其他租户数据库相对不活动),那么您将能够获得比在繁忙节点上更多的吞吐量。

使用1GB SQL Azure DB进行会话状态存储非常有吸引力;你已经确定了成本效益。你冒了风险。缓解此风险的一种方法是对至少两个SQL Azure 1GB数据库进行分区,并根据其中一个数据库是否开始达到限制来自行调整负载。

如果您想要确定吞吐量,另一个选择是使用WIndows Azure Cache来支持您的sesion状态存储。缓存具有严格的预定义查询吞吐量限制,因此您可以更轻松地进行规划Azure Caching FAQ including Limits。缓存方法可能有点贵,但问题风险较低。