當前位置:首頁 » 編程語言 » oraclesqltrace

oraclesqltrace

發布時間: 2022-05-10 01:26:16

㈠ 如何刪除大量oracle中的小trace文件

刪除大量的oracle的trace文件需要寫shell腳本

比如刪除一個月前的trace文件
find /u01/app/oracle/diag/rdbms/testgg1/testgg1/trace -mtime +30 -type f -name "*" -exec rm -rf {} \;

可以寫成shell腳本如下:
[oracle@Primary shell]$ vi delete_trace.sh
#! /bin/sh

export ORACLE_SID=testgg1
VALUE=`sqlplus -S "/ as sysdba" << EOF_SQLPLus
set pagesize 0 feedback off verify off heading off echo off
select value from v\\\$diag_info where name='Diag Trace';
exit;
END`

find $VALUE -mtime +30 -type f -name "*" -exec rm -rf {} \;
~
配合crontab自動刪除一個月前的trace文件,由於某些資料庫可能會產生trace文件比較多如果沒有及時去清理這些無效的trace文件,很容易導致空間暴漲,做一個job自動去刪除,免去了DBA的煩惱。

Shell可以在DBA的運維過程中帶來了很多的方便,目前正在學習shell,謹以此紀錄並提高自己

㈡ oracle 中的sql_trace是什麼意思

sql 跟蹤記錄, 就是某個時間段內執行的sql的詳細記錄, 包含sql、開始時間、等待時間、運行時間、結果條數等等, 是用來分析sql性能的

㈢ 如何查看oracle trace 文件

1.獲得當前trace文件生成路徑
SQL> select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));
1
1
TRACEFILE
f:\Oracle\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1160.trc
1
1
2.開啟當前session的trace
SQL> alter session set sql_trace=true;
SQL> select count(*) from t1;
1
2
3
1
2
3
3.轉換trc文件內容為可讀的輸出結果
C:\Documents and Settings\Administrator>tkprof f:\oracle\administrator\diag\rdbm
s\orcl\orcl\trace\orcl_ora_1160.trc output=c:\aa.txt
TKPROF: Release 11.2.0.1.0 - Development on 星期六 10月 6 23:51:07 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
1
2
3
4
5
1
2
3
4
5
4.打開c:\aa.txt, 就會看到關於SQL語句 『 select count(*) from t1;』 的執行計劃
SQL ID: 5bc0v4my7dvr5
Plan Hash: 3724264953
select count(*) from t1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.04 0 1 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.03 0.01 0 1070 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.03 0.06 0 1071 0 1
Misses in library cache ring parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 91
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=1070 pr=0 pw=0 time=0 us)
72597 TABLE ACCESS FULL T1 (cr=1070 pr=0 pw=0 time=172543 us cost=298 size=0 card=66014)

linux oracle trace文件可以刪除么

可以刪除的

跟蹤文件(trace file)能提供調試信息,伺服器遇到問題時,它會生成一個包含大量診斷信息的跟蹤文件。如果開發人員設置了sql_trace=true,伺服器就會生成一個包含性能相關信息的跟蹤文件。我們之所以可以使用這些跟蹤文件,是因為是一個允許充分測量的軟體。編寫內核的程序員在內核中放入了調試代碼,而且調試代碼相當多,這些調試代碼是被程序員有意留在內核中的。

要關閉和刪除塊修改跟蹤文件,還要用一次alter database命令:
alter database disable block

㈤ oracle 如何跟蹤全表掃描進程

Maclean教你讀Oracle 10046 SQL TRACE
有同學一直向Maclean反應希望做一期10046 SQL trace的教程, 正好這幾天有空 我們就理一理。

為什麼我們要使用10046 trace?

10046 trace幫助我們解析 一條/多條SQL、PL/SQL語句的運行狀態 ,這些狀態包括 :Parse/Fetch/Execute三個階段中遇到的等待事件、消耗的物理和邏輯讀、CPU時間、執行計劃等等。
即10046 為我們揭示了 一條/多條SQL 的運行情況, 對於 以點入手的 SQL調優是很好的輔助工具,特別是在 10g之前沒有ASH的情況下。 但整體系統調優 不是10046 所擅長的, 10046 是 性能調優的起釘器 , AWR是性能調優 的錘子。

10046還能幫助我們分析 一些 DDL維護命令的內部工作原理, RMAN、Data Pump Expdp/Impdp等工具的緩慢問題等, 是研究 oracle 資料庫原理的 居家旅行必備良品。

10046 和SQL TRACE的區別?

10046 比 SQL_TRACE參數提供更多的控制選項, 更詳細的內容輸出, 一般Maclean只用10046 而不用sql_trace

10046 和10053 的區別?

10053 是最常用的Oracle 優化器optimizer 跟蹤trace, 10053 可以作為我們解析 優化器為什麼選擇某個執行計劃,其中的理由的輔助工具,但並不告訴我們這個執行計劃 到底運行地如何。
而10046 並不解釋 optimizer優化器的工作, 但它同樣說明了在SQL解析parse階段所遇到的等待事件和所消耗的CPU等資源,以及Execute執行和Fetch階段的各項指標。

簡而言之10046 告訴我們SQL(執行計劃)運行地如何, 10053告訴我們 優化器為什麼為這個SQL選擇某個執行計劃。

10046 TRACE的LEVEL:

不同的Level 對應不同的跟蹤級別
1 啟用標準的SQL_TRACE功能 ( 默認) 包含了 SQL語句、響應時間、服務時間、處理的行數,物理讀和寫的數目、執行計劃以及其他一些額外信息。 到版本10.2中 執行計劃寫入到 trace 的條件是僅當相關游標 已經關閉時, 且與之相關的執行統計信息是所有執行次數的總和數據。 到版本11.1中僅在每次游標的第一次執行後將執行計劃寫入到trace , 執行統計信息僅僅和這第一次執行相關
4 比level 1時多出 綁定變數的 trace
8 比level 1多出等待事件,特別對於9i中指出 latch free等待事件很有用,對於分析全表掃描和索引掃描也很有用
12 比level 1 多出 綁定變數和 等待事件
16 在11g中為每一次執行生成STAT信息,僅在11.1之後可用
32 比level 1少執行計劃
64 和level 1 相比 在第一次執行後還可能生成執行計劃信息 ; 條件是某個游標在前一次執行的前提下 運行耗時變長了一分鍾。僅在 11.2.0.2中可用
Level 28 (4 + 8 + 16) 代表 同時啟用 level 4 、level 8、level 16
level 68 ( 64 + 4 ) 代表 同時啟用 level 64、level 4

設置的方法如下:

session 級別:alter session set events 』10046 trace name context forever,level X』;
system 級別 : alter system set events 』10046 trace name context forever,level X』;

㈥ oracle 11g trace 文件夾下的文件都是什麼作用謝謝

oracle 的trace文件主要是追蹤後台進程和用戶進程所做的事情。先跟你說一下前台用戶進程,比如你發出一個sql語句:「select * from a",如果你開啟10053事件,則就會在後面生成一個trace文件,裡面詳細記錄了你發出這條語句之後 oracle都做了些什麼事情,包括採用什麼連接方法等等細節,通俗地說就是把一個sql的詳細的流程以trace的方式展現給你。
在說後台進程,你上面的那些trace文件都是後台進程鎖生成的,不同的進程生成的trace文件就不一樣,如果你弄明白了每個後台進程是干什麼的,那麼自然就知道他們有什麼不同了。
比如那個lgwr,管理聯機日誌寫的。smon負責實例恢復和資源整理的。等等,所以你要先明白上面每個進程都是做什麼的。

熱點內容
寫shell腳本 發布:2025-05-11 04:37:41 瀏覽:934
電腦伺服器打開有什麼用 發布:2025-05-11 04:36:49 瀏覽:98
sqlserver2008查詢時間 發布:2025-05-11 04:15:28 瀏覽:386
安卓孤膽車神被封號怎麼解封 發布:2025-05-11 04:05:22 瀏覽:940
高壓洗車泡沫怎麼配置 發布:2025-05-11 04:00:47 瀏覽:547
騰訊輕量伺服器怎麼使用 發布:2025-05-11 03:52:46 瀏覽:174
4位密碼組合有多少種至少有一個0 發布:2025-05-11 03:44:03 瀏覽:338
八卦手指演算法 發布:2025-05-11 03:23:32 瀏覽:281
編譯成exe是什麼意思 發布:2025-05-11 03:23:28 瀏覽:470
javaweb技術內幕 發布:2025-05-11 03:20:14 瀏覽:803