1

PL/SQLストアド・プロシージャでワークロード・バランシングを実装するためのオプションは何ですか? ワークロードを処理するようにサーバーを構成することについて話しているのではなく、そのような機能を特定のストアド プロシージャに実装することについて話しているのです。

データを取り込み、データを読み取り、処理してから結果を返すプロシージャがあるとします。データセットが非常に大きい場合、貪欲なユーザーが処理する大規模なデータセットを送信すると、システムの他のユーザーはパフォーマンスの低下を感じるでしょう。

1 つの解決策は、(データ セットがループのような方法で読み取られている場合) x 回の反復ごとに待機コマンドを使用して、大きな要求が処理されている間に他のユーザーの要求を少し処理できるようにすることです。

この種のことを単一の PL/SQL プロシージャ/パッケージに実装できる他の方法はありますか?

4

1 に答える 1

1

取得するデータが非常に大きい場合は、次のようにコレクションと一括収集を使用できます。

CREATE OR REPLACE

function employee_job return id_tabl as

 emp_table  id_tabl;

 begin

 select job_id 

 bulk collect into emp_table from employees;

 return emp_table;

 end employee_job;

このようなタイプのコードを使用すると、コンテキストの切り替えが減り、パフォーマンスが向上します。

回答に満足できない場合、または質問に正しく従うことができない場合は、元に戻ってください。

于 2013-12-03T05:40:23.700 に答える