我使用sql server,但我必須遷移到帶有Oracle DB的應用程序。 用於跟蹤我的應用程序查詢,在Sql Server中我使用了美妙的Profiler工具。對於Oracle來說有沒有相同的東西?Oracle:是否有跟蹤查詢的工具,如用於sql server的Profiler?
回答
甲骨文,與其他數據庫一起,分析給定的查詢,以創建執行計劃。該計劃是檢索數據的最有效方式。
Oracle提供'explain plan
'語句,它分析查詢但不運行它,而是填充可以查詢的特殊表(計劃表)。
的語法(簡單的版本,還有其他的選項,例如在計劃表中的行與一個特殊的ID標記,或者使用不同的計劃表)是:
explain plan for <sql query>
該數據的分析留給另一個問題,或者你的進一步研究。
這是Oracle文檔,說明如何跟蹤SQL查詢,其中包括一對夫婦的工具(SQL跟蹤和TKPROF)
您可以使用Oracle企業管理器監視活動的會話,與正在執行的查詢,執行計劃,鎖定,一些統計數據甚至是長期任務的進度條。
參見:http://download.oracle.com/docs/cd/B10501_01/em.920/a96674/db_admin.htm#1013955
轉到實例 - >會話,看每個會話的SQL選項卡。
還有其他的方法。 http://www.oracle.com/pls/db92/db92.catalog_views?remark=homepage
,當然你也可以使用解釋計劃,跟蹤工具和大量的工具化的其他方式:企業經理只是漂亮的顏色是什麼樣的記錄在這裏特別的觀點已經可以提出。企業管理器中有一些關於最昂貴的SQL查詢的報告。您還可以搜索保存在緩存中的最近查詢。
試試這個(它也是免費的): http://www.aboves.com/Statement_Tracer_for_Oracle.exe
我試圖使用這個軟件,但我看不到配置連接字符串的方法。誰能幫忙? – 2014-02-21 15:33:13
太棒了!工程很漂亮......但據我只能告訴數據庫的本地主機。 – vmassuchetto 2014-09-22 15:58:46
這是一個可執行文件的鏈接 - 非常不錯! – 2015-08-24 22:35:36
嘗試PL/SQL開發人員具有良好的用戶友好的GUI界面,以探查。嘗試一下這個試驗很不錯。在Oracle數據庫上工作時,我發誓這個工具。
http://www.allroundautomations.com/plsqldev.html?gclid=CM6pz8e04p0CFQjyDAodNXqPDw
看到,因爲我剛剛投了最近的問題是重複的,並在此指明方向。 。 。
更夫婦 - 在SQL * Plus - SET AUTOTRACE ON - 將給予解釋計劃和統計,每條語句執行。
蟾蜍還允許客戶端分析。
這兩個的缺點是,他們只告訴你該語句的執行計劃,但不知道如何到達該計劃優化器 - 爲您將需要較低級別的服務器端跟蹤。
另一個重要的理解是Statspack快照 - 它們是查看整個數據庫性能的好方法。解釋計劃等,善於發現個別的SQL語句是瓶頸。 Statspack擅長識別你的問題,即一個簡單的聲明和一個良好的執行計劃在一分鐘內被稱爲100萬次。
有一個商業工具FlexTracer可用於跟蹤的Oracle SQL查詢
美中不足的是捕獲兩個點之間的所有SQL運行時間。像SQL Server一樣。
在某些情況下,捕獲特定用戶在數據庫中運行的SQL很有用。通常您只需爲該用戶啓用會話跟蹤,但該方法存在兩個潛在問題。
- 第一個是許多基於Web的應用程序維護一個持久數據庫連接池,它在多個用戶之間共享。
- 第二個是有些應用程序連接,運行某些SQL並且很快斷開連接,使得根本無法啓用會話跟蹤(當然,在這種情況下,您可以使用登錄觸發器來啓用會話跟蹤)。
該問題的一個快速和骯髒的解決方案是捕獲在兩個時間點之間運行的所有SQL語句。
以下過程將創建兩個表格,每個表格包含特定點上的數據庫快照。然後將查詢這些表以生成在此期間所有SQL運行的列表。
如果可能,您應該在安靜的開發系統上執行此操作,否則您可能會冒太大的風險。
先取快照 運行以下SQL創建第一個快照:
create table sql_exec_before as select executions,hash_value from v$sqlarea /
獲取用戶在應用程序內執行他們的任務。
取第二個快照。
create table sql_exec_after as select executions, hash_value from v$sqlarea /
檢查結果 現在你已經捕獲的SQL是時候來查詢結果。
這第一個查詢將列出所有已執行的查詢哈希:
select aft.hash_value
from sql_exec_after aft
left outer join sql_exec_before bef
on aft.hash_value = bef.hash_value
where aft.executions > bef.executions
or bef.executions is null;
/
這一次將顯示哈希和SQL本身: 集頁999線100 突破上HASH_VALUE
select hash_value, sql_text
from v$sqltext
where hash_value in (
select aft.hash_value
from sql_exec_after aft
left outer join sql_exec_before bef
on aft.hash_value = bef.hash_value
where aft.executions > bef.executions
or bef.executions is null;
)
order by
hash_value, piece
/
5。 收拾一下,不要忘記刪除快照表一旦你已經完成:
drop table sql_exec_before
/
drop table sql_exec_after
/
alter system set timed_statistics=true
--or
alter session set timed_statistics=true --if want to trace your own session
- 必須足夠大:
select value from v$parameter p
where name='max_dump_file_size'
- 瞭解會議的SID和序列號你有興趣:
select sid, serial# from v$session
where ...your_search_params...
- 您可以與10046事件開始跟蹤,第四個參數設置跟蹤級別(12是最大的):
begin
sys.dbms_system.set_ev(sid, serial#, 10046, 12, '');
end;
- 轉向了與設定的零電平跟蹤:
begin
sys.dbms_system.set_ev(sid, serial#, 10046, 0, '');
end;
/*可能的級別: 0 - 關閉 1 - 最低水平。就像設置SQL_TRACE = TRUE 4 - 添加綁定變量的值來跟蹤文件 8 - 等待加入 12 - 無論是綁定變量值和等待事件被添加 */
如果你想跟蹤--same你自己的會話與更大級別:
alter session set events '10046 trace name context forever, level 12';
- 轉向關:
alter session set events '10046 trace name context off';
--file與原始跟蹤信息將位於:
01 (*。TRC)select value from v$parameter p
where name='user_dump_dest'
文件的--name將包含SPID:
select p.spid from v$session s, v$process p
where s.paddr=p.addr
and ...your_search_params...
- 兼論你可以自己設置名稱:
alter session set tracefile_identifier='UniqueString';
--finally,使用TKPROF
使跟蹤文件更易於閱讀:
C:\ORACLE\admin\databaseSID\udump>
C:\ORACLE\admin\databaseSID\udump>tkprof my_trace_file.trc output=my_file.prf
TKPROF: Release 9.2.0.1.0 - Production on Wed Sep 22 18:05:00 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
C:\ORACLE\admin\databaseSID\udump>
--to視圖TRA的狀態CE文件使用:
set serveroutput on size 30000;
declare
ALevel binary_integer;
begin
SYS.DBMS_SYSTEM.Read_Ev(10046, ALevel);
if ALevel = 0 then
DBMS_OUTPUT.Put_Line('sql_trace is off');
else
DBMS_OUTPUT.Put_Line('sql_trace is on');
end if;
end;
/
只是一種翻譯http://www.sql.ru/faq/faq_topic.aspx?fid=389原來是更全面的,但無論如何,這是比別人貼恕我直言
我發現了一個簡單的解決方案
第一步更好。使用PLSQL或的SQLDeveloper或任何其他查詢接口
第二步管理員用戶連接到DB。波紋管運行腳本;在S.SQL_TEXT欄,你會看到執行的查詢
SELECT
S.LAST_ACTIVE_TIME,
S.MODULE,
S.SQL_FULLTEXT,
S.SQL_PROFILE,
S.EXECUTIONS,
S.LAST_LOAD_TIME,
S.PARSING_USER_ID,
S.SERVICE
FROM
SYS.V_$SQL S,
SYS.ALL_USERS U
WHERE
S.PARSING_USER_ID=U.USER_ID
AND UPPER(U.USERNAME) IN ('oracle user name here')
ORDER BY TO_DATE(S.LAST_LOAD_TIME, 'YYYY-MM-DD/HH24:MI:SS') desc;
與此唯一的問題是,我無法找到一個方法來顯示輸入參數值(函數調用),但至少我們可以看到什麼是在Oracle中運行並且沒有使用特定工具的順序。
這是一個工具甲骨文捕捉到類似SQL Server事件探查執行的查詢。 維護使用此數據庫服務器的應用程序不可或缺的工具。
你可以從官方網站下載iacosoft.com它
顯然有不小的簡單廉價的工具,這將有助於執行此任務。然而,以複雜和不方便的方式來做到這一點。
以下文章介紹了幾種。可能有幾十個...... http://www.petefinnigan.com/ramblings/how_to_set_trace.htm
- 1. 是否有工具用於跟蹤在Oracle上執行的SQL
- 2. SQL Server Profiler如何檢查創建SQL Server Profiler跟蹤的用戶ID?
- 3. 如何使用SQL Server Profiler跟蹤
- 4. 是否有SQL Server Express的SQL Server Profiler?
- 5. 是否有SQL Server的查詢優化工具?
- 6. Oracle 10g的SQL Server跟蹤等效嗎?
- 7. 是否有可用於SQL Server 2005的數據調整工具?
- 8. SQL Profiler 2008中重複SQL Server 2000跟蹤
- 9. 有沒有像Cassandra的SQL Server Profiler的工具?
- 10. 如何跟蹤Oracle 12c中的SQL查詢?
- 11. 如何跟蹤從應用服務器提交給Oracle DB的所有查詢?
- 12. 是否有Microsoft SQL Server Profiler等效於Progress OpenEdge ABL?
- 13. 是否pycharm有時間跟蹤的任何工具
- 14. 是否有從數據庫表跟蹤到java類的工具?
- 15. 是否有用於java/java IDE的語義查詢工具?
- 16. SQL Server Profiler - 查看Dynamic Sql
- 17. 是否有(靜態)JavaScript函數調用跟蹤工具?
- 18. 用於比較SQL Server查詢計劃的工具?
- 19. 用於顯示分層數據的SQL Server查詢或工具
- 20. MS SQL Server相當於oracle查詢
- 21. 具有多個表的Oracle sql查詢
- 22. 具有多個子查詢的ORACLE SQL
- 23. 是否有用於Oracle Database Express的免費GUI管理工具?
- 24. 積極跟蹤Oracle查詢性能
- 25. Oracle的查詢工具9
- 26. 來自鏈接服務器的SQL Server跟蹤查詢
- 27. 用於跟蹤最近活動的循環SQL查詢表
- 28. SQL Server Profiler - 如何過濾跟蹤以僅顯示包含DELETE語句的TSQL?
- 29. 是否有與Oracle相關的Microsoft SQL Profiler
- 30. 哪些是可用於NetBeans 7.0的錯誤跟蹤工具?
你爲什麼接受錯誤的答案?解釋計劃不會做分析器的工作。這完全沒有關係。 – Jasmine 2013-05-07 20:46:04
你有沒有找到像`sql server profiler`這樣的最佳工具?你現在在用什麼? – 2015-09-18 09:43:55
我寫了一本關於跟蹤Oracle應用程序的書。它可以通過http://method-r.com以PDF格式獲得。 – 2016-02-11 16:26:21