いくつかのドキュメントをSQL ServerデータベースVarBinary(Max)
列に保存します。ほとんどのドキュメントは数KBになりますが、時には数MBになることもあります。SQL AzureでVarBinary(max)の更新が非常に遅い
ファイルが約4MBを超えると問題が発生します。
オンデマンドSQL ServerのVarBinary
列を更新すると、非常に高速です(8MBファイルの場合は0.6秒)。
SQL Azureの同じデータベースで同じステートメントを実行すると、15秒以上かかることがあります。
また、コードがAzure Appサービスから実行されている場合、それは非常に遅いです。だから私たちのインターネット接続は問題ではありません。
私はSQL Serverにファイルを格納するのが好ましい方法ではなく、BLOBストレージが通常は最高の解決策であると知っていますが、これを行う特別な理由がありますので、 )
実行計画を調べるとき、私はいつも "テーブルスプール"を見て、私はなぜそれがわかりません。以下はオン・プレミアムとAzureの実行計画です。
同一のデータベースとデータ。誰かが助けることができれば、それは素晴らしいことでしょう。
おかげクリス
質問をdba.stackexchange.comに投稿してください – sepupic
テーブルスキャン、Idのインデックスなし? –
こんにちは@TapakahUa、あなたのコメントありがとうございます。 5つのレコードだけを持つテーブルなので、欠落しているインデックスは問題ではありません。インデックスの更新(および統計情報)が原因であることを除外したいので、インデックスを削除しました。それは実際のテーブルにあります。テーブルスキャンはわずか0.004秒です。 – Christian