Azure SQL DB - 资源治理

时间:2016-03-02 16:57:57

标签: sql-server azure azure-sql-database

我们使用Azure SQL数据库,目前使用的是S3 Tier,我们的服务有问题,他们正在将数据推送到数据库。它经常被调用,大部分时间我们的DTU超过95%。我们已经优化了我们的功能,但基本上它的DB命中率太高了。我们正在进行其他优化,缓存等工作。

问题是,我们的其他应用程序使用此数据库,并且由于DTU被其他服务使用,我们遇到了性能问题。

我在想,如果有办法的话,什么时候能以某种方式为DTU的一个SQL用户设置最大限制?例如30%。 我试图谷歌它,但无法找到任何与此主题相关的内容。 非常感谢您的答案或建议

2 个答案:

答案 0 :(得分:0)

%总是基于S2层数据库。如果您在95,则意味着您在DTU使用率上处于S2层数据库的95%。在这种情况下,您接近100%,因此您可能很快就需要更大的S2作为S2。您正在使用S3,因此您拥有正确的层。

azure-sql-database-introduces-new-near-real-time-performance-metrics

  

例如,如果您的DTU消耗量显示为80%,则为   表示它正在以超过限制的一半的速率消耗DTU   数据库会有。如果您在此视图中看到大于100%的值   这意味着您需要一个大于S2的性能层。

     

例如,假设您看到百分比值为300%。这个   告诉你,你使用的资源是原来的三倍   可在S2中使用。要确定合理的起始大小,请进行比较   S2(50 DTU)中可用的DTU具有下一个更高的尺寸(P1 =   100个DTU,或S2的200%,P2 = 200个DTU或S4的400%)。因为你   在S2的300%处你想要从P2开始并重新测试。

     

根据DTU使用百分比,您可以确定您的数据库是否可以   符合S2性能水平(或者指示的较低/较高水平)   通过DTU百分比和各种性能的相对DTU功率   MSDN网站中记录的层。)

当您遇到锁定问题时,您需要找到锁定数据库并重写它们的查询。扩展到更大的数据库层只会有所帮助,并且使导致问题的应用程序更少的数据库性能只会延长锁定时间。

答案 1 :(得分:0)

目前,SQL数据库无法基于每个查询/客户端限制资源。您最大限度地使用哪个资源维度(CPU,读取,写入)?如果你无法进一步优化,你可能需要咬紧牙关并扩大规模。如果你是IO绑定,切换到P1将帮助你。如果你受CPU限制,你可能不得不去P2。