2010-08-31 47 views
2

我在考慮如何基準Oracle過程的方法。我的想法是,將​​放在procedure的每個part上,您希望進行基準測試。存儲它進入該部分的時間。然後,創建另一個應用程序(使用PHP)來計算每次執行之間的差異。基準測試Oracle用戶過程/函數

需要PHP應用程序才能使其成爲外行人。

這個想法不會工作,因爲它太分散,並且很難理解。如果我想同時多次執行該功能/過程,結果將是錯誤的。

算法很好。代碼更好。整個應用程序是最好的。 :)

+0

爲什麼不在數據庫的其他表中編寫此日誌並僅使用SQL查詢分析結果? 但是,由於插入延遲,你會得不到真正的時間...... – 2010-08-31 02:36:45

+0

你可以用問題的形式來描述你的問題嗎?如果您問如何處理不同用戶的併發運行,可以使用sys_context('USERENV','SESSIONID')來分離出不同的會話活動。 – 2010-08-31 03:25:19

回答

6

Oracle在9i中引入了DBMS_PROFILER包。它幾乎完全符合你的描述,只是更好。 Find out more.

在11g中,他們引入了層次分析器,它對於整個PL/SQL調用堆棧執行類似的操作,而不僅僅是一個單獨的程序單元。 Find out more

+0

'tkprof'與這些相關的地方在哪裏? – 2010-08-31 02:52:30

+0

TKPROF執行SQL,分析器執行PL/SQL。如果您使用PL/SQL進行消費Web服務,讀取/寫入文件等,則非常方便。 – 2010-08-31 03:21:33

+0

如果您希望通過DBMS_PROFILER數據獲得前端靈感,請查看TOADs圖表(條形圖/餅圖花費的時間,讓你深入到子集,並最終跳出到源代碼行)。有一些真正的改進可以在那裏完成(比如'活着'圍繞源代碼跳躍),我很想看到一個簡單的基於Web的等效工具。 – JulesLt 2010-08-31 06:51:50