2つのクエリに時間がかかりすぎて、紺碧のWebサイトで実行しているときにタイムアウトしてしまいます。SQLデータベースのインデクシングが遅すぎる
1st。
SELECT Value FROM SEN.ValueTable WHERE OptId = @optId
2D
INSERT INTO SEN.ValueTable (Value, OptId)
SELECT Value, OptId FROM REF.ValueTable WHERE OptId = @optId
両SELECTSは常に7860個の値を返します。問題は、さまざまな@optIdを使用してこれらのクエリの約10を実行することです。最初にインデックスなしで実行した場合、1回目のクエリは毎回タイムアウトします。次に、非クラスタ化インデックスをSEN.ValueTableに追加し、2dクエリがタイムアウトし始めました。
第一クエリ私はの.configファイルを介し-タイムアウト時間を増加しようとしたが、彼らはまだ(30秒以内にタイムアウトAzureの-WebAppの
から2Dクエリ
AzureのVMから顧客からの時間制限はないので、SQLデータベースからのデータの取得は、アプリケーションの遅いものではありません)。これをスピードアップする/タイムアウトを取り除くためにとにかくありますか? REF.ValueTableをインデックス化すると、挿入物の速度が上がりますか?それは次のようになるため
SELECT Value, OptId
FROM REF.ValueTable
WHERE OptId = @optId;
最適なインデックス:
あなたが実行計画を掲示しなければ、それは遅いですなぜ評価するのは難しいです。 2番目のクエリ挿入用の神は、インデックス付きテーブルにいくつの値があるのかを知っていますが、神だけがいくつの値を知っているので遅いかもしれません。 テーブルとインデックスの分割を検討するか、部分クエリを実行するだけです(代理キー%4 = 0、次に1、次に2、そして3つで3つのクエリとタイムアウトの問題があります)。 – AlexanderMP
'両方のSELECTSは常に7860の値を返します。問題は、さまざまな@ optIdを使ってこれらのクエリの約10回を実行することです。あなたはどうしていますか? –
両方のテーブルで 'OptId'のクラスタ化されたインデックスを考えてください。特に、2つのカラムが' OptId'と 'Value'だけです。 –