2016-05-03 21 views
0

ip_address_record定義、アレイは、上記で

create or replace type ip_object is object (ip_address varchar2(200)); 
create or replace type IP_ADDRESS_RECORD is table of ip_object; 

オブジェクト、私は範囲内にするIPアドレスを収集するために、配列オブジェクト、PL/SQLを使用していました。

アレイは小さなセットのレコード、つまりマスク124または120でうまく動作しますが、マスクが100以下の場合、パフォーマンスは低下します。 問題にアプローチするより良い方法はありますか?

答えて

1

PL/SQLプロファイリングを使用して、コードのどの部分が遅いかを正確に検出します。 PL/SQL Developerには、プロファイル・レポートを生成および表示するための単純なインタフェースがあります。

まず、新しいテストウィンドウを開きます。この下にコードを入力してください。

declare 
    ips ip_address_record; 
begin 
    ips := pkg_cmts_ip_tools.calculateIPValues('2001::0000/124'); 
end; 

「プロファイラーレポートの作成」ボタン(小さなゲージのように見えます)をクリックします。その後、コードを実行します。完了したら、[プロファイラ]タブに移動します。それはコードのすべての行とそれらに費やされた時間を示します。最も遅い行を見つけるために「合計時間」列でソートします。

低速なコードを見つけることは、最初のステップに過ぎませんが、しばしば見過ごされます。 すべてをに調整しないでください。遅いコード行にレーザーのような焦点を置いてください。一歩前に戻ってアルゴリズム全体を検討する必要があるかもしれませんが。

関連する問題