Web サーバーに関係する可能性のあるオーバーヘッドに対処することはできませんが、他にも考慮すべき要素がいくつかあると言えます。
これは、主に 2 つのシステム インターフェイスの動作方法の違いに関係している可能性があります。
対話型 STRSQL セッションは、データの最初の数ページを受け取るとすぐに結果の表示を開始します。その初期データをページダウンすることはできますが、通常、ある時点で、画面の下部にステータス メッセージが表示され、データがさらに取得されていることが示されます。
Web サーバーは、結果セット全体を受け取るまで待機していると思います。HTML ページを作成するときに、ページを送信する前にすべてのデータを取得する必要があります。したがって、当然、より長く待つことになります。
これが Web サーバー アプリケーションの動作ではない場合、JT400 JDBC プロパティの問題である可能性があります。
デフォルト設定を上書きした場合は、それらが適切であることを確認してください。
状況によっては、OPTIMIZATION_GOAL 設定が要因になることがあります。ただし、インデックスやキーを使用せずに、テーブル (物理ファイルまたは PF) を物理的な順序で直接読み取る場合は、ここでは当てはまらない可能性があります。
対話型 STRSQL セッションは、デフォルトで *FIRSTIO の設定になります。これは、データの最初のページをすばやく返すようにクエリが最適化されていることを意味します。これは、クエリの動作に対応しています。
拡張動的パッケージを使用していない限り、JDBC 接続はデフォルトで「0」の「クエリ最適化目標」に設定され、これは *ALLIO の OPTIMIZATION_GOAL 設定に変換されます。*ALLIO は、オプティマイザーが、最初のページだけでなく、結果セット全体を返すのに必要な時間を最小限に抑えようとすることを意味します。
または、最初FOR READ ONLY
に SELECT ステートメントの最後に単純に追加してみてください。
更新: より高度なソリューション
送信される Web ページの構築の一環として、結果セット全体を待機することによって生じる遅延を回避できる場合があります。
レコードがない、または制限されたレコードなしで Web ページをブラウザーに送信しますが、AJAXコードを使用して残りのデータを舞台裏で読み込みます。
1 つのクリップで多くの行を取得するには、可能な限り大きなブロック フェッチを使用します。