2011-11-09 10 views
3

ユニットテスト用のutplsqlについて知っていますが、これをループ内で使用してストアドプロシージャをテストする方法はありますか?PLSQLのテストをロードするツールはありますか

私はJMeterのを使用するか、任意のJDBCドライバを介して行きたくない

- あなたがしているので、ちょうどPROC

+0

興味深い記事があります:http://www.dba-oracle.com/t_benchmark_testing.htm – diagonalbatman

+0

JDBCには何が問題なのですか?ストアドプロシージャを呼び出す際のオーバーヘッドは無視してください(プロシージャの実行時と比較して) –

+0

@a_horse_with_no_name:すでにいくつかのJDBCテスト結果がありますので、さらに分割する必要があります。 OracleドライバのDEBUGを有効にすると、実際の時間がかかるでしょうか? – shinynewbike

答えて

4

をストアドバニラのパフォーマンスを分析しようとしている私は、ユニットテストツールは正しいアプローチだとは思いません機能性についてのアサーションは実際には行っていません。負荷テストでは、大量のデータを使用してプロシージャを実行する方法を知りたいのです。

ループや大きなテーブルで実行し、プロファイラを使用してブートロールを見つけることができます。 11gの場合はthe built-in hierarchical profilerをチェックしてください。

begin 
    DBMS_HPROF.START_PROFILING (
     location => 'PROF_DATA_FILE_DIR' 
     , filename => 'HPROF_RUN1_20111109' 
     ); 

    some_pkg.generate_lots_of_work(p_id => 1234); 

    DBMS_HPROF.STOP_PROFILING; 

end; 
/

またはループ中:このような

何か

明らか
begin 
    DBMS_HPROF.START_PROFILING (
     location => 'PROF_DATA_FILE_DIR' 
     , filename => 'HPROF_RUN2_20111109' 
     ); 

    for i in 1..1000 
    loop 
     some_pkg.do_this(p_num => i); 
    end loop; 

    DBMS_HPROF.STOP_PROFILING; 

end; 
/

、これは、負荷テストのためのデータの塊を生成する際に、あなたを助けにはなりません。これは常に最も難しい部分です。

0

LoadRunner、Silk Performer、QALoad、およびRational Performance Testerは、問合せのパフォーマンス・テストを直接またはストアド・プロシージャに対して実行するためのデータベース機能を備えています。

これらのツールがこの機能を備えているのは、client = serverの標準が2層のデータベースの厚いクライアントアーキテクチャであった場合、一般に市場に存在していたからです。 2000年以来市場に登場してきたものの大部分は、ほとんどウェブだけです。