alter session set timed_statistics true;
alter system set timed_statistics false;
MAX_DUP_FILE_SIZE 當實(shí)例層啟用SQL TRACE的時(shí)候,在每次請求服務(wù)器的時(shí)候,都將在跟蹤文件中產(chǎn)生一個(gè)文本行,這些文件
的最大尺寸受限于初始化參數的設置。默認為500。若里面的數據被截斷則增大SIZE。若為UNLIMITED則意味
著(zhù)沒(méi)有上限。
USER_DUMP_DEST 設置跟蹤文件的存儲位置。默認為admin/用戶(hù)/udump;alter system set user_dump_dest=newdir
BACKGROUND_DUMP_DEST 在多線(xiàn)程服務(wù)器(MTS)連接時(shí)采用。
二、啟動(dòng)SQL TRACE實(shí)用工具
對會(huì )話(huà)啟動(dòng)SQL TRACE
alter session set sql_trace=true;
alter session set sql_trace=false;
SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION=( SID , SERIAL# , TRUE );
ALTER SESSION SET EVENTS
alter session set events ‘10046 trace name context forever,level<n>‘;
alter session set events ‘10046 trace name context off‘;
alter system set events ‘10046 trace name context forever,level 1‘
alter system set events ‘10046 trace name context off‘
n=1---------激活標準SQL_TRACE工具,這與設置SQL_TRACE=TRUE 沒(méi)有任何不同;
n=4---------激活標準SQL_TRACE,且可以撲獲跟蹤文件中的綁定變量。
n=8---------激活標準SQL_TRACE,且可在查詢(xún)級上撲獲跟蹤文件中的等待事件。
n=12--------激活標準SQL_TRACE,并包括撲獲綁定變量與等待事件。
對用戶(hù)實(shí)例啟動(dòng) SQL TRACE
alter system set sql_trace=true;
alter system set sql_trace=false;
在WEB應用程序中用該用戶(hù)的觸發(fā)器
create or replace trigger logon_trigger
alter logon on database
begin
if(user=‘TKYTE‘)then
excute immediate
‘ALTER SESSION SET ENVETS"10046 TRACE NAME CONTEXT FOREBER,LEVEL4"‘);
end if;
end;
create or replace trigger trace_logon
after logon on database
begin
if ( user = ‘SCOTT‘ ) then
execute immediate
‘a(chǎn)lter session set sql_trace=true‘;
end if;
end;
/
三、利用TKPROF格式化跟蹤文件
tkprof
對跟蹤文件中的COMMIT、ROLLBACK,TKPROF不能產(chǎn)生報告
tkprof filename1 filename2 sort=(prsdsk,exedsk,fchdsk) print=10 explanin=scott/tiger table=scott.temp_plan_table_a
insert=storea.sql sys=no
filename1 tkprof的輸入文件,它是SQL跟蹤工具產(chǎn)生的跟蹤文件,包含有關(guān)的統計信息。
filename2 輸出TKPROF輸出的格式化文件名。
SORT 在將被跟蹤的SQL語(yǔ)句列表輸出到跟蹤文件之前,先將其按照指定排序選項的降序關(guān)系對其進(jìn)行排序;若指定了多種排序選項,
那么根據排序選項所指定值的和的降序關(guān)系對其進(jìn)行排序;若忽略此參數,那么TKPROF將按照使用次序把語(yǔ)句列表到輸出文件中。
PRSCNT 語(yǔ)句解析的數目;
PRSCPU 語(yǔ)句解析所占用的CPU時(shí)間;
PRSELA 語(yǔ)句解析所占用的時(shí)間(總是大于或等于CPU時(shí)間);
PRSDSK 語(yǔ)句解析期間,從磁盤(pán)進(jìn)行物理讀取的數目;
PRSQRY 語(yǔ)句解析期間,一致模式塊讀?。–ONSISTENT MODE BLOCK READ)的數目;
PRSCU 語(yǔ)句解析期間,當前模式讀?。–URRENT MODE BLOCK READ)的數目
PRSMIS 語(yǔ)句解析期間,庫緩存失敗的數目;
EXECNT 語(yǔ)句執行的數目;
EXECPU 語(yǔ)句執行所占用的CPU時(shí)間;
EXEELA 語(yǔ)句執行所占用的時(shí)間(總是大于或等于CPU時(shí)間);
EXEDSK 語(yǔ)句執行期間,從磁盤(pán)進(jìn)行物理讀取的數目;
EXEQRY 語(yǔ)句執行期間,一致模式塊讀?。–ONSISTENT MODE BLOCK READ)的數目;
EXECU 語(yǔ)句執行期間,當前模式讀?。–URRENT MODE BLOCK READ)的數目
EXEROW 語(yǔ)句執行期間,所處理的語(yǔ)句行數;
EXEMIS 語(yǔ)句執行期間,庫緩存失敗的數目;
FCHCNT 取數據的數目;
FCHCPU 取數據所占用的CPU時(shí)間;
FCHELA 取數據所占用的時(shí)間(總是大于或等于CPU時(shí)間);
FCHDSK 取數據期間,從磁盤(pán)進(jìn)行物理讀取的數目;
FCHQRY 取數據期間,一致模式塊讀?。–ONSISTENT MODE BLOCK READ)的數目;
FCHCU 取數據期間,當前模式讀?。–URRENT MODE BLOCK READ)的數目
FCHROW 所獲取的行數;
PRINT 只列出輸出文件中的第一個(gè)INTEGER的SQL語(yǔ)句,若忽略,則TKPROF將列出所有跟蹤的SQL語(yǔ)句。
AGGREGATE 若用戶(hù)指定AGGREGATE=NO,TKPROF將不會(huì )對相同SQL文本的多個(gè)用戶(hù)進(jìn)行匯總。
INSERT SQL腳本的一種,用于將跟蹤文件的動(dòng)機信息存儲到數據庫中。
SYS 用于啟動(dòng)或禁止將用戶(hù)SYS所發(fā)布的SQL語(yǔ)句列表到輸出文件之中,也包括遞歸SQL(為執行用戶(hù)的SQL語(yǔ)句,ORACLE還必須執行
一些附加語(yǔ)句)語(yǔ)句在內。默認為YES。
TABLE 用于指定在將執行規劃寫(xiě)進(jìn)輸出文件之前,TKPROF用于臨時(shí)存放執行規劃所用表的架構和名稱(chēng)。
SESSION 對于跟蹤文件中的個(gè)條SQL語(yǔ)句,用于確定其相應的執行規劃,并將執行規劃寫(xiě)進(jìn)輸出文件之中。
RECORD 對于跟蹤文件中的所用非遞歸SQL語(yǔ)句,TKPROF 將以指定的名稱(chēng)來(lái)創(chuàng )建某個(gè)SQL腳本。用于對跟蹤文件中的用戶(hù)時(shí)間進(jìn)行重放。
find "total" resport.txt 用FIND來(lái)抽取所有的TOTAL行,以便我能知道應加速進(jìn)行的查詢(xún)。
三、表式統計信息
PARSE 將把SQL語(yǔ)句轉化為執行規劃,其中包括對安全授權的檢查,以及對存在表、列和其他訪(fǎng)問(wèn)對象進(jìn)行檢查。
EXECUTE 由ORACLE進(jìn)行語(yǔ)句執行。對于INSERT、UPDATE、DELETE的語(yǔ)句,將對數據進(jìn)行修改;對于SELECT語(yǔ)句,將對所選行進(jìn)行確定。
FETCH 將檢查出查詢(xún)的返回行,只有SELECT語(yǔ)句能夠執行取數據的操作。
COUNT 語(yǔ)句解析、執行或取數據等調用的次數;
CPU 某條語(yǔ)句進(jìn)行解析、執行和取數據等調用所占用地時(shí)間,單位為秒。若TIMED_STATISTICS功能處于為啟動(dòng),則該值為0;
ELAPSED 某條語(yǔ)句進(jìn)行解析、執行和取數據等調用所占用地時(shí)間,單位為秒。若TIMED_STATISTICS功能處于為啟動(dòng),則該值為0;
DISK 對于所有語(yǔ)句解析、執行和取數據等調用,從磁盤(pán)數據文件中物理讀取的數據塊數目;
QHERY 對于所有語(yǔ)句解析、執行和取數據等調用,以一致模式所檢索的緩沖總數目。通常下,查詢(xún)通過(guò)一致模式進(jìn)行檢索工作。
CURRENT 以當前模式所檢索的緩沖總數目,對INSERT、UOPDATE、DELETE 等語(yǔ)句,查詢(xún)通過(guò)當前模式進(jìn)行檢索工作。
ROWS SQL語(yǔ)句所處理行的總數目,它并不包括SQL語(yǔ)句的子查詢(xún)所處理的行數。
PARSE-COUNT/EXECUTE-COUNT確定內存使用情況
CPU/ELAPSED確定等待時(shí)間
FETCH-COUNT/FETCH-ROW確定一次性讀取的行數,是否用批量處理(默認使用時(shí)為15行)
DISK COUNT=QUERY+CRRENT MODE BLOCK COUNT 則所有的塊從磁盤(pán)讀。應該有些從SGA中讀取。
UNNEST_SUBQUERY =TRUE 啟動(dòng)子查詢(xún)去嵌套。
NO_UNNEST 關(guān)閉特定子查詢(xún)塊
聯(lián)系客服