一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

獲取執(zhí)行計劃的幾種方法

 昵稱10504424 2013-03-14
1、執(zhí)行SQL語句EXPLAIN PLAN,然后查詢結(jié)果輸出表
  utlxplan.sql
  plan_table(全局臨時表,它會存儲數(shù)據(jù)直到會話結(jié)束,多個并發(fā)用戶可以互不影響彼此的工作)
  explain plan for select count(*) from t10;
col Id for 99
col Operation for a30;
col Name for a10
select id "Id",
       rtrim(lpad(' ', 2 * (level-1)) || rtrim(operation)|| ' ' ||options)  "Operation", object_name  "Name",cardinality "Rows",bytes "Bytes",
       cost "Cost "
       from plan_table
connect by prior id = parent_id
 start with id = 0;
select * from table(dbms_xplan.display);
select * from table(dbms_xplan.display(null,null,'BASIC'));
select * from table(dbms_xplan.display(null,null,'BASIC ROWS BYTES'));
select * from table(dbms_xplan.display(null,null,'TYPICAL'));
select * from table(dbms_xplan.display(null,null,'TYPICAL -PREDICATE'));
select * from table(dbms_xplan.display(null,null,'TYPICAL PROJECTION'));
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(FORMAT=>'ADVANCED -PROJECTION'));--高級執(zhí)行計劃可以看到QUERY BLOCK + OUTLINE DATA 


 2、查詢一張動態(tài)性能視圖,它顯于緩存在庫緩存中的執(zhí)行計劃
 v$sql_plan
 v$sql_plan_statistics
 v$sql_workarea
 v$sql_plan_statistics_all
 select count(*) from t10;
 ---查看最近執(zhí)行的sql
select /* recentsql */ sql_id, child_number, hash_value, address, executions, sql_text
from v$sql
where parsing_user_id = (select user_id
from all_users
where username = 'SCOTT')
and command_type in (2,3,6,7,189)
and UPPER(sql_text) not like UPPER('%recentsql%');
select * from table(dbms_xplan.display_cursor('fu9fh7nx72xx8',0,'advanced'));
set serveroutput off;
var x number;
exec :x := 1;
SELECT /*+ GATHER_PLAN_STATISTICS */ * from t1 where id =:x;
 OR
ALTER SESSION SET STATISTICS_LEVEL=ALL; 
SELECT  * from t1 where id =:x;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'));--特殊執(zhí)行計劃
--ALLSTATS:包含了IOSTATS和MEMSTATS的全部內(nèi)容
--LAST:限定僅顯示最后一次運(yùn)行的統(tǒng)計數(shù)據(jù)
--ADVANCED:除了會輸出完全格式中的所有內(nèi)容外,還會看情況輸出綁定變量窺視信息和計劃概要(Outline)信息。
--注:如報以下錯誤:(解決set serveroutput off;)
NOTE: cannot fetch plan for SQL_ID: 9babjv8yq8ru3, CHILD_NUMBER: 0
      Please verify value of SQL_ID and CHILD_NUMBER;
      It could also be that the plan is no longer in cursor cache (check v$sql_plan)
SELECT /*+ GATHER_PLAN_STATISTICS */ * from t2 order by 1
Plan hash value: 2552596561
----------------------------------------------------------------------------------------------------------------
| Id  | Operation          | Name | Starts | E-Rows | A-Rows |   A-Time   | Buffers |  OMem |  1Mem | Used-Mem |
----------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |      1 |        |   2000 |00:00:00.01 |      11 |       |       |          |
|   1 |  SORT ORDER BY     |      |      1 |   2000 |   2000 |00:00:00.01 |      11 | 95232 | 95232 |83968  (0)|
|   2 |   TABLE ACCESS FULL| T2   |      1 |   2000 |   2000 |00:00:00.01 |      11 |       |       |          |
----------------------------------------------------------------------------------------------------------------
--Cost(%CPU):優(yōu)化器估算出完成當(dāng)前操作的代價(包含子操作的代價),它是IO代價和CPU代價總和,其中IO代價是最基本的代價,而對于CPU代價,在默認(rèn)情況下,優(yōu)化器會將CPU代價計算在內(nèi),并且將CPU代價根據(jù)系統(tǒng)配置由特定的轉(zhuǎn)換公式轉(zhuǎn)換為IO代價。也可以通過優(yōu)化器參數(shù)_optimizer_cost_model指定是否在代價模型中包括CPU代價。括號中數(shù)據(jù)即為CPU代價在總代價中的比例
--Start:當(dāng)前操作的啟動次數(shù)
--Buffers:當(dāng)前操作中發(fā)生讀內(nèi)存的次數(shù),包括一致性讀(Consistent Read,CR)和當(dāng)前模式讀(Current Get,CU)
--Reads:當(dāng)前操作中發(fā)生讀磁盤的次數(shù)
--Write:當(dāng)前操作中發(fā)生寫磁盤的次數(shù)
--OMem:當(dāng)前操作完成所有內(nèi)存工作區(qū)(Work Aera)操作所總共使用私有內(nèi)存(PGA)中工作區(qū)的大小,這個數(shù)據(jù)是由優(yōu)化器統(tǒng)計數(shù)據(jù)以及前一次執(zhí)行的性能數(shù)據(jù)估算得出的
--1Mem:當(dāng)工作區(qū)大小無法滿足操作所需的大小時,需要將部分?jǐn)?shù)據(jù)寫入臨時磁盤空間中(如果僅需要寫入一次就可以完成操作,就稱一次通過,One-Pass;否則為多次通過,Multi_Pass).該列數(shù)據(jù)為語句最后一次執(zhí)行中,單次寫磁盤所需要的內(nèi)存大小,這個由優(yōu)化器統(tǒng)計數(shù)據(jù)以及前一次執(zhí)行的性能數(shù)據(jù)估算得出的
--User-Mem:語句最后一次執(zhí)行中,當(dāng)前操作所使用的內(nèi)存工作區(qū)大小,括號里面為(發(fā)生磁盤交換的次數(shù),1次即為One-Pass,大于1次則為Multi_Pass,如果沒有使用磁盤,則顯示OPTIMAL)



 3、查詢自動工作量資料庫(Automatic Workload Repository)或查詢Statspack表,它顯示存儲在資料庫中的執(zhí)行計劃
  dba_hist_sql_plan.sql_id
  dba_hist_sqltext.sql_id
 select sql_id,to_char(substr(sql_text,0,4000)) from dba_hist_sqltext where upper(sql_text) like 'SELECT * FROM T1%'; 
 select * from table(dbms_xplan.display_awr('bnj6pak6x2tn4'));
--PLAN_HASH_VALUE:執(zhí)行計劃的哈希值,每個執(zhí)行計劃都有一個哈希值,通過該值,可以顯示SQL語句的特定的執(zhí)行計劃。如果該參數(shù)未指定或為NULL,則會顯示語句的所有執(zhí)行計劃。


 4.查詢存儲在一個SQL調(diào)優(yōu)集中的語句的執(zhí)行計劃
  DBA_SQLSET_PLANS.SQL_ID
  declare
  ss_name varchar2(30);
  begin
   ss_name := dbms_sqltune.create_sqlset();
   dbms_sqltune.capture_cursor_cache_sqlset(ss_name,300,100);
   dbms_output.put_line(ss_name);
  end;
  /
  select sqlset_name,sql_id,sql_text from DBA_SQLSET_STATEMENTS where upper(sql_text) like 'SELECT * FROM T1%';
  select * from table(dbms_xplan.display_sqlset('STS_2','efaf35dfrd',null,'BASIC ROWS COST'));
 
 5、顯示存儲在數(shù)據(jù)字典中SQL執(zhí)行計劃基線的計劃
  dba_sql_plan_baselines.sql_handle,默認(rèn)為null
  select * from table(dbms_xplan.display_sql_plan_baseline(sql_handle=>'SYS_SQL_99ccreredfdfdl'));
  
 6、利用AUTOTRACE查看執(zhí)行計劃
 set autot on ----執(zhí)行SQL 并且顯示執(zhí)行計劃和統(tǒng)計信息
 set autot trace ----執(zhí)行SQL 但不顯示運(yùn)行結(jié)果,顯示執(zhí)行計劃和統(tǒng)計信息
 set autot trace exp ----如果SELECT 就不執(zhí)行SQL(dml 執(zhí)行),只顯示執(zhí)行計劃
 set autot trace stat ----執(zhí)行SQL,只顯示統(tǒng)計信息
 grant plustrace to gyj;


 7、啟動提供執(zhí)行計劃的跟蹤功能
  (1)sql跟蹤
    alter session set sql_trace=true;
    dbms_monitor.session_trace_enable(session_id=>300,serial_num=>30,waits=>TRUE,binds=>FALSE);
    dbms_monitor.session_trace_disable(session_id=>300,serial_num=>30);
    tkprof(trace kernel profiler )
 (2)10046事件
     alter session set events '10046 trace name context forever,level 8';
     alter session set events '10046 trace name context off';

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美一区二区三区视频区| 国产精品欧美一级免费| 亚洲国产成人精品福利| 五月婷婷缴情七月丁香| 精品国产亚洲免费91| 美女露小粉嫩91精品久久久| 欧美成人免费夜夜黄啪啪| 九九热视频经典在线观看| 午夜精品一区二区av| 欧美一级特黄大片做受大屁股| 女同伦理国产精品久久久| 一区二区三区日本高清| 熟女白浆精品一区二区| 国产亚洲中文日韩欧美综合网| 成人午夜视频在线播放| 99久久无色码中文字幕免费| 日韩1区二区三区麻豆| 日韩特级黄片免费在线观看 | 一区二区三区日韩中文| 国产无摭挡又爽又色又刺激| 国产精品福利精品福利| 亚洲天堂有码中文字幕视频| 久久国产精品亚州精品毛片| 久久精品中文字幕人妻中文| 午夜成年人黄片免费观看| 五月激情五月天综合网| 国产精品亚洲一级av第二区| 国产又色又爽又黄又大| 国产一级精品色特级色国产| 日韩精品成区中文字幕| 色婷婷久久五月中文字幕| 欧美一级不卡视频在线观看| 欧美午夜一级艳片免费看| 又大又长又粗又黄国产| 高中女厕偷拍一区二区三区| 东京热男人的天堂一二三区| 亚洲熟女精品一区二区成人| 开心久久综合激情五月天| 久久精视频免费视频观看| 欧美午夜色视频国产精品 | 亚洲欧美日韩在线中文字幕|