0

3 層アプリケーションを開発しましたが、データベースからのデータの取り込みに関して問題があります。私のアプリケーションには、データベースから大量のデータをクエリするウィンドウがあり、このプロセスには非常に時間がかかります。(私のクライアントはサーバーから遠く離れており、その間の接続は 128 KB/秒です)。

次に、この問題を解決するための解決策を考えました。解決策は、y 秒ごとに x レコードのデータを入力することです。(例: 最初に 10 レコードを入力して UI に表示し、次に 5 秒ごとにさらに 10 行を表示します)。

これはこの問題を解決するための良い解決策ですか? これを解決するより良い方法はありますか?

4

4 に答える 4

2

表示目的の場合は、ページングを使用する必要があります。これにはバリエーションがあり、ユーザーがスクロール バーで詳細情報にアクセスしようとすると、UI がレコードの次の「ページ」を取得します。データを集約する必要がある場合は、クエリで実行して、データ全体がネットワークを通過しないようにします。本当に/絶対にデータ全体を取得し、それを使用していくつかのプロセスを実行する必要がある場合は、データが大きすぎて一度にすべてをロードできないかどうかを検討してください。その場合、データのチャンクを取得し、関連するプロセスを実行してから、別のチャンクを取得します (同様に)。とにかく、UI (スレッド/非同期操作) をブロックしないアプローチでそれを行う必要があります。

于 2009-03-02T07:21:34.997 に答える
1

Freddy は私を打ち負かしましたが、例として、多くのデータベース ビューアーが、ビュー フィールドに必要なデータのみを入力していることに気付くでしょう。スクロール バーを使用すると、データの次のページ/ビューが自動的に取得されます。

Web サイトについて考えると、ほとんどの場合、一度にすべてをロードしないようにデータをページングします。

于 2009-03-02T07:28:03.813 に答える
0

遅延読み込みを行うオプションはありますか (一度にすべてではなく、オンデマンドでデータを読み込むことになります)?

于 2009-03-02T06:53:51.290 に答える
0

アプリケーションの UI で許可されている場合は、レコードを複数のページに表示します。

また、クエリ中にアプリをフリーズしないように、非同期呼び出しを使用してデータを取得することをお勧めします (デスクトップ アプリの場合)。

Web アプリの場合は、AJAX の使用を検討してください。

于 2009-03-02T06:56:56.023 に答える