2016-11-10 4 views
0

5つの別々のSELECT count (*)クエリを使用して計算された5つのライブ合計を表示するダッシュボードがあります。これらの結果は、SQLクエリのために15ページを読み込む

 Using rdr As SqlDataReader = db.ExecDataReader(qry1) 
      rdr.Read() 
      qa1.InnerText = rdr(rdr.GetName(0)) 
     End Using 

     Using rdr As SqlDataReader = db.ExecDataReader(qry2) 
      rdr.Read() 
      qa2.InnerText = rdr(rdr.GetName(0)) 
     End Using 

でページに挿入されます。ロード時間を短縮する方法はありますか? UNIONですべてのクエリに参加しようとしましたが、SQL SMSでは時間が数秒かかりますが、結果からそれぞれの行を引き出す方法はわかりません。

これは、サーバー管理スタジオではまだ12秒ですが、まだダッシュボードには望ましくありません。私の手はインフラストラクチャーによって結ばれていますか?

+3

あなたは応答時間が遅い原因を特定しました。クエリにはコストがかかります。あなたの最初のコールポートは、それらのクエリを最適化しようとすることです - 欠落しているインデックスなどを確認してください。これを念頭に置いて、問題はあまりにも漠然としています。 – AdaTheDev

+0

5つのクエリをすべて含む1つのuspを作成すると、このuspは5つのテーブルのコレクションであるデータセットを返します。 –

+0

結果は100%正確である必要がありますか?あなたのテーブルは更新されているか挿入されていますか? LOBを使用していますか? –

答えて

0

カウントクエリを最適化する必要があるようです。それらがゆっくりと実行されている場合は、数多くのデータを取得するか、不適切に最適化された複雑なクエリがあります。

テーブル構造と、私たちが低速クエリの考えられる原因を助けるために使用しているクエリについての詳細を投稿する必要があります。

0

カウント、メモリ、またはステージテーブルにキャッシュします。これにより、ダッシュボードコールが最適化されます。次に、要件に基づいてステージを更新する最も効率的な方法を見つけます。新しいアイテムが追加されたときにステージを更新するか、間隔でステージを更新するバックグラウンドプロセスを作成することがあります。

関連する問題