2016-03-24 13 views
-1

私は、ASP.NET、C#& DevExpressを使用して構築されたWebページを実行しています。 [CalledDateTime] DESCこの単純なgridview表示プログラムのパフォーマンスを改善するにはどうすればよいですか?

BY

SELECT * [SYS_IFCError] ORDER FROMは:

1のページサイズとグリッドビューや単純なselect文を使用してデータソースがあります画面には、ヘッダーフィルター、列フィルター、カスタムコマンドボタンを含む追加された列も使用されます。

500件を超えるレコードを表示すると、毎回読み込むのに約47秒かかります。

ロードごとに500レコードが得られますか?

このパフォーマンスを向上させる方法はありますか?

+0

いけない使用 '*'、特定の列を持参しようとすると、上記では、SQL Server上でこのクエリを実行すると、それはそのがかかるどのくらいの時間、SQLインジェクション – Webruster

+0

につながる可能性がありapproch?私はこれが非常に時間がかかるとは信じられないので、あなたはページにいくつかの他の問題を持っています....いくつかの呼び出しは、各行のサーバー上で何度も繰り返されますか?いくつかの巨大なviewstateが開いている? – Aristos

+0

また、テーブルには実際にいくつのレコードがありますか? – Aristos

答えて

0

はい、パフォーマンスを向上させる方法があります。最良の方法は、SQL Server上でページングアルゴリズムを実装することです。基本的には、ページサイズとページインデックスを受け取るストアドプロシージャを記述し、必要なページを正確に返します。その場合は、フィルタリングと並べ替えの手順を実行する必要があります。コードスニペットはかなり一般的ですが、問題が見つかるはずです。

しかし、ページングがデータベースサーバー上に存在しない場合でも、私は500レコードで47秒と言わなければなりません。だから私の意見では、あなたの最初のステップは正確にあなたのボトルネックを突き止め、そこから行くことでしょう。

0

(500)レコードがページサイズのためのあなたの必要とすると、パフォーマンスを改善するには、いくつかの方法があります。

  1. は、特定の列の名前で置き換え、選択なステートメントで*を使用しないでください。
  2. selectステートメントのImagesなどのバイナリデータを除外します。
  3. ご注文の列にインデックスを追加する
  4. 最後に、SSMSの実行計画を使用してクエリの実行マップを表示すると、クエリの改善に役立ちます。
関連する問題