2016-03-02 90 views
1

我们使用Azure SQL数据库,目前使用的是S3 Tier,并且我们的服务中有一位将数据推送到数据库的服务出现问题。这很常见,大部分时候我们的DTU都超过了95%。我们已经优化了我们所能做到的,但基本上这是太多的数据库命中。我们正在进行其他优化,缓存等。Azure SQL数据库 - 资源治理

问题是,这个数据库被我们的其他应用程序使用,并且由于DTU被其他服务占用,我们有性能问题。

我在想,如果有办法,我们可以以某种方式为DTU的一个SQL用户设置最大限制?例如30%。 我试图谷歌它,但找不到任何与此主题相关的东西。 非常感谢您的回答或建议

回答

0

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

+0

好吧,tx很多,你的答案。 –

0

%始终基于S2层db。如果你在95这意味着你在DTU使用的S2层db的95%。在这种情况下,你接近100%,所以你很可能很快需要一个更大的S2级别。你正在使用S3,所以你有正确的层。

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

例如,如果你的DTU消费示出的80%的值,它表示 它是在极限的S2 数据库将具有80%的速度消耗DTU。如果您在此视图中看到的值大于100%,则表示您需要大于S2的性能等级。

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

基于DTU使用百分比可以判断,如果你的数据库可以 配合在S2的性能级别(或较低/较高的水平,通过DTU百分比,以及各种性能 层次相对DTU权力表示 在MSDN网站在案)。

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

+0

DTU仅相对于已弃用的Web/Business版本的S0。在所有其他版本中,100%意味着您最大限度地利用了该版本中的可用资源。 –