3

列の値として 40 個のバインド変数を使用する挿入ステートメントが遅いという問題があります。WAN リンクを介して実行すると数秒間実行され、ネットワーク アナライザーを使用するまで問題を突き止めることができませんでした。この準備されたクエリを 1 回実行するたびに、完了するまでにクライアントとサーバー間で 120 を超えるパケットを交換する必要がありました。より効率的に実行するにはどうすればよいでしょうか?

同じホストから実際のパラメーター (バインド変数なし) を使用して同じ挿入を実行すると、数十ミリ秒で完了します。パラメーターについて特別なことは何もありません。短い varchar と数値のみがあります。

ODACでDelphi 6を使用しています。さまざまなバージョンのODACとOracleクライアントを試しましたが、役に立ちませんでした。サーバー側では、Oracle 10 と 11 の両方を試しました。

4

2 に答える 2

1

TNSでうまく動作するようには設計されていませんWAN

可能であれば、HTTPより効率的な などの他のネットワーク層を使用するようにアプリケーションを書き直してください。

たとえば、を使用してそれを行うことができOracle HTTP Serverます。

于 2009-05-27T14:14:56.003 に答える
0

外部テーブルを見たことがありますか? SQLローダーの必要性を置き換えますただし、Oracle 9i以上が必要です

于 2009-08-24T14:01:51.870 に答える