2011-11-09 63 views
3

我知道utplsql的單元測試,有沒有一種方法可以在循環中使用它來加載測試我的存儲過程?有沒有一個工具來加載測試PLSQL

我不想通過任何JDBC驅動程序使用JMeter的或去 - 只是想分析存儲過程

香草
+0

這裏有一篇有趣的文章:http://www.dba-oracle.com/t_benchmark_testing.htm – diagonalbatman

+0

JDBC有什麼問題?調用存儲過程的開銷應該可以忽略不計(與過程的運行時相比) –

+0

@a_horse_with_no_name:我們已經有了一些JDBC測試結果,我們只想進一步拆分爲DB。在Oracle驅動程序上啓用DEBUG會在實際時間內提供幫助嗎? – shinynewbike

回答

4

我不認爲一個單元測試工具,是正確的做法的表現,因爲你沒有真正做出關於功能的斷言。通過負載測試,您想知道過程如何以大量數據運行,以及是否需要多次調用。

因此,您可能想要在循環或大表中運行它,並使用分析器查找bootlene。如果你使用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都可以直接執行數據庫功能,以直接或針對存儲過程執行查詢性能測試。

這些工具具有此功能的原因是因爲當客戶端=服務器的標準是雙層數據庫胖客戶端體系結構時,它們通常在市場上存在十年以上。自2000年以來市場上出現的大多數東西都是非常網絡化的。