2017-03-16 15 views
1

私は単純な質問ではありません。 私のデータベースに10のDTUがあるとき、クエリの実行に約17秒かかりました。 レベルを50 DTUに上げました。実行には3〜4秒かかります。 この比率はドキュメントに対応しています。利用可能なすべてのDTUがクエリの実行に使用されていますか?

しかし!

1私のPCでは、1秒でクエリを実行できます。

2ポータル統計では、私は12 DTU(最大DTUパーセンテージ= 25%)のみを使用していることがわかります。 sys.dm_db_resource_statsでは、MAX(avg_cpu_percent)が約25%で、その他のパラメータはそれより少ないことがわかります。

質問があります - 私のクエリがexecに3-4秒かかるのはなぜですか? 1秒で実行できます。そして、サーバーはすべての私のDTUを使用するわけではありません。 どのようにして、サーバがすべての利用可能なリソースをexecクエリにすばやく使用できるようにしますか?

+1

EXPLAIN PLANを使用して、クエリプランにクエリオプティマイザがどのように対応しているかを確認する必要があります。 TABLE SCANが表示された場合は、より多くのスレッドの前にインデックスを追加する必要があります。私は並列化する前に単一のスレッドを最適化します。 – duffymo

答えて

1

DTUは、CPU、メモリ、データI/O、およびトランザクションログI/Oの組み合わせ測定値です。

これは、DTUのボトルネックに達することは、それらのいずれかを意味する可能性があることを意味します。

この質問は異なる側面を測定するためにあなたを助けることがあります。Azure SQL Database "DTU percentage" metric

そしてここでは、DTU詳細は:私のPC上でhttps://docs.microsoft.com/en-us/azure/sql-database/sql-database-what-is-a-dtu

+1

統計によると、私は制限(CPU、メモリ、データI/O、トランザクションログI/O)には達しません。しかし、PC速度の実行には到達できません.... –

1

私は1秒

でクエリを実行することができます

Onpremの計算能力とDTUを比較するべきではありません。 DTUは、パフォーマンス階層に基づいて取得するCPU、IO、メモリの組み合わせです。比較は無効です。

サーバーで実行可能なすべてのリソースをexecクエリにすばやく使用するにはどうすればよいですか。

SQLクエリを実行するとき、メモリはCPUなどのリソースのさえstarting.Restからクエリを防ぐことができます唯一の制約であり、IO速度は何に基づいて増減することができますので、これは、単純に不可能です問合せは

要約すると、問合せはリソースの不足により制限されず、必要な場合はすべてのリソースを使い切り、不要な場合は解放することができます。

また、待機タイプを調べて、クエリをさらに細かく調整する必要があります。

+0

"比較が有効ではありません" - OK。しかし私の例の実行速度はDTUに依存しています。より多くのDTU - より多くのスピード(ドキュメントの同じ情報)。私は75%無料のDTUを持っており、簡単なPCの実行速度に達することができません。 AzureのDBとPCのDBの間には大きな違いがありますか?それに関する情報はありますか?私はリンクに感謝します。 –

+0

クエリーがazureで長時間実行されている場合、いくつかの制限(cpu、ram、IOのいずれか)を打つ必要があります。DTU.httpsの詳細については、このリンクを参照してください://docs.microsoft.com/en-us//azure/sql-database/sql-database-benchmark-overview – TheGameiswar

+1

あなたのオン・ザ・プリンスPCにRAMが増え、クエリプランをキャッシュしたり、バッファにデータを保存したりすることができます。 – TheGameiswar

0

ベルナールバンダーBekenは、上述したように:

DTUのCPU、メモリ、データI/Oとトランザクション ログI/Oの組み合わせ測定値です。

また、マイクロソフトはDTUの計算式を共有していないと付け加えます。クエリ実行中にDTUペグが100%で表示されていないことに言及しました。しかし、我々は公式を知らないので、あなたはDTUのコンポーネントを釘付けにしているかもしれませんが、DTU自体を釘付けすることはできません。

AzureのSQLは、共有環境で、各テナントは、DTUは何すべてのテナント

0

の最小SLAは非常にあいまいであることを保証するために絞られます。

異なるデータセンターで同じ量のDTUを持つマシンで一連のベンチマークを実行する実験を行いました。 http://dbwatch.com/azure-database-performance-measured

これは、実際のパフォーマンスは、同じデータベース上の繰り返しクエリのパフォーマンスが大幅に変わるところ我々はまた、例を見てきました。5. の要因によって変化することが判明しました。

あなたのPC上で実行するインスタンスと紺碧のクラウドのインスタンスを比較したい場合は、データベースのパフォーマンスベンチマークを無料で提供します。

関連する問題