3

データセットに大量のデータを表示したい.100,000レコード約10列.これは大量のRAM 700MBを消費します. また、これを約 15 ~ 20% 削減するページングを使用してみましたが、ページングを使用するときに含まれる [前へ] または [次へ] ボタンがあまり好きではありません。現在、データをディスクに書き込んでいませんか? もしそうなら、最も一般的な方法は何ですか?データは、表示されている間だけ永久に保存されるわけではありません。その後、新しいクエリが実行され、さらに 70,000 レコードが表示される可能性があります。続行する最良の方法は何ですか?

アドバイスをありがとう。

4

5 に答える 5

2

現実には、エンドユーザーがデータセットの全体を見る必要はめったにないので、データ (リストビュー) を表示するのに好きな方法を使用し、カスタム ページャーを構築して、データセットに結果のみが供給されるようにします。必要なレコード数。そうしないと、ページが読み込まれるたびにデータセットが再度呼び出されます。

一時ファイルへの XML メソッドまたはストアド プロシージャを介して作成された一時テーブルの利用は代替手段ですが、それでもデータを選別して提示する必要があります。

于 2008-10-29T21:01:51.633 に答える
1

重要な質問は、このデータがどこから来ているかです。それはあなたが利用できるオプションを決定するのに役立ちます。ディスクへの書き込みは機能しますが、次の3つの理由から、おそらく最良の選択ではありません。

  1. ユーザーとして、あなたのアプリが警告なしに突然700Mbのディスク容量をかみ砕いたら、私はかなりイライラするでしょう。でも、そういうことに気づきます。多くのユーザーはそうしないと思います。それでも:それはたくさんのスペースです。
  2. データのソースによっては、最初の転送でさえ、実際に許可したいよりも時間がかかる場合があります。
  3. 繰り返しになりますが、ユーザーとして、700Mb相当のデータを手動で掘り下げる方法はありません。つまり、ほとんどの場合、表示する必要はありません。要求されたページを一度に1つ(または2つ)のページだけロードする必要があります。
于 2008-10-29T21:05:03.733 に答える
0

メモリフットプリントを削減したい場合は、SQLでページングを実装します

于 2008-10-29T21:03:45.310 に答える
0

メモリ マップ ファイルをお勧めします....NET にまだサポートが含まれているかどうかはわかりません。

于 2008-10-29T20:58:58.113 に答える
0

これは、処理し、メモリに保持する必要がある大量のデータです。

これは ASP.NET アプリですか? それともWindowsアプリ?

個人的には、カスタム ページャー設定 (次の前のリンクを制御するため) を使用し、データベース レベルでページングすることが、必要なデータのみを取得して最高のパフォーマンスを得る唯一の方法であることがわかりました。

于 2008-10-29T21:03:22.007 に答える