1

1つのページに2つのSqlDataSourceコントロールがあります。1つは高レベルのデータをロードし、もう1つは選択した高レベルのアイテムに基づいて詳細をロードします。これは900,000を超えるレコードを持つ大規模な検索の一部であり、私はそれを高速化する方法を探しています。それがSqlDataSourceに追加できるオプションであるか、SQLクエリに対して実行できることであるか、またはObjectDataSourceなどの代替手段を使用するかどうか。

DataSourceModeをDataReaderに変更したのは、より高速でメモリ使用量が少ないと聞いたためです。また、ページングが非常に遅いことに気づきました。

私はこのWebサイトhttp://mosesofegypt.net/post/2008/02/Building-a-grouping-Grid-with-GridView-and-ASPNET-AJAX-toolkit-CollapsiblePanel.aspxから次のことを行っていますが、明らかに900,000レコードを超えるデータで、2番目のグリッドビューにページングを追加する方法がわかりません。現在、それはトップレベルのグリッドビューにのみ存在するためです。

4

4 に答える 4

3

I don't think your data source control itself would need to be the target for any optimizations. It is only going to work with the data that you get from it (meaning you should optimize your SQL) or the data put into it before sending it off to SQL (meaning you should optimize your application code).

于 2009-03-26T14:18:35.870 に答える
1
  1. asp.netのデータのサーバー側ページングから始めます。
  2. 最大のパフォーマンスを得るには、データベーステーブルにインデックスを付けるようにします。また、クエリアナライザを使用して、クエリパフォーマンスの問題点を確認します。
  3. 検索する場合は、SQLサーバーが提供する全文索引を使用することをお勧めします。
于 2009-03-26T14:19:13.137 に答える
0

大量のデータを追跡する必要があったとき、デフォルトのページインを使用せず、データベースから一度に 10 行または 20 行のみを収集するようにオーバーライドする方がよいことがわかりました。コードが表示されている10または20行程度を認識できるように、適切なインデックス作成プロセスが必要ですが、速度が向上します。

于 2009-03-26T15:07:23.023 に答える