2016-04-10 5 views
1

私のAzure SQLデータベース(S0 10 DTU)には、Productsテーブルが80k行あります。Azure SQLは多列で動作している間に極端に遅い

管理Studioから、私は次のクエリを実行している:

UPDATE Product 
set IsActive = 'true' 

DBリソースのほぼ100%を利用しそれはほとんど3分間実行されます。

同じクエリが100倍あるテーブルの上に私のローカルマシン(SQL Serverのエクスプレス)に未満10秒で実行されます。

Azure SQLの問題点は何ですか?それはではない複数の行の操作に適していますか?私のローカル設定は非常に劣っていますが、Azure SQLよりもはるかに優れています。

実際にはDTUとは何ですか? this linkから、私は実際にはトランザクションで意味するものを伝えることはできません。それは単一行の読み取り/書き込みアクセスですか?

データベースで複数行の操作を実行する必要がある場合は、SQL Sever Expressを使用してVMに移動する必要がありますか?

EDIT

統計

SQL Server Expressの

実行時間:26秒

enter image description here enter image description here

AzureのSQL

実行時間:1メートル23S

enter image description here enter image description here

+0

実行計画と統計情報を提供してください。別のクエリでブロックされていないことは確かですか? – lad2025

+0

@ lad2025私はかなり確信していますが、何も私をブロックしません(他にはこのBDを使用していません)。どうすれば確認できますか?実行計画と統計情報を数分で削除します。 – gisek

+0

10 DTUは非常に少ないです。あなたのローカル設定をAzure 10 DTUSと比較していますか?その比較は無効です。層を増やす必要があります。 – TheGameiswar

答えて

1

本当にDTUは何ですか?

これは良い質問です。彼らはhereを説明しました。まだ明確ではありません。しかし彼らはdtu calculatorを持っています。この計算機で現在のSQL Serverを1時間測定し、結果をアップロードします。その後、どの層を同じパフォーマンスに使うべきかを提案します。

Azure Sqlを6ヶ月以上使用しています。私の意見では、DTUは専門用語以上のマーケティング用語です。

DTU電卓を使用したり、層を増やしたりする必要があります。次に、再度テストして、お客様のニーズに最適な価格/性能を見つけてください。私の経験では、製品のdbsに必要な層をテストするのは良い段階です。

また、Saasとローカルコンピュータを比較しないでください。 Azure Sqlを使用して仮想マシンコスト+ SQLと仮想マシンのコスト+バックアップ、ジオロケーションなどを管理することを比較できます。そうすればより公平になるでしょう。ここ

+0

これは素晴らしい意見です。しかし、それは答えではありません。ランダムな層を投げ捨てるだけで( "少なくとも* S3を使うべきです")、有効な答えではありません。 –

+0

私はあなたがs3を使用し、それがあなたが必要とするものを満たしているかどうかをテストして、それを下げるか上げることができることを意味しました。しかし、それは製品にとって十分ではありません。とにかく、私はs3を使うように人々をリダイレクトしないように変更します。 –

2

いくつかのこと...ローカルDBと紺碧のDBを使用して比較1.First

2.Secondlyあなたの実行計画は、様々な要因とクライアントの統計に応じて変更されることがあり助けを習慣有効ではありません。 。

真comparsionについては

、以下行います。..

。)Set SSMS option to discard result sets両方のインスタンス上

bが。)結果セットを破棄して今、ネットワークの待ち時間がなくなり、統計とさ

の統計IOを設定する上ioを、私たちは、AzureのDBが、メモリ圧力にディスクから

を読んでいるかどうかを確認することができますあなたは真の比較をしたら、クエリが実行されている場合、待機型であるかを確認するにはいくつかのより多くの事を確認することができます。..

select * from sys.dm_exec_query_stats st 
cross apply 
sys.dm_exec_sql_text(st.sql_handle) txt 

あなたの場合は待機タイプに基づいて、あなたは、例えば言い、さらにトラブルシューティングを行うことができます高ページIo Lを見ているatch待機型の場合、そのテーブルのメモリにPagesがないことを意味します。

+0

結果セットを破棄する方法は? –

+1

@MichaelFreidgeim、https://stackoverflow.com/q/6386587/2975396 – TheGameiswar

関連する問題