当前位置: 首页 > article >正文

执行计划 统计信息相关 SQL_MONITOR display_cursor

Select sql_plan_hash_value,sql_plan_line_id,count(*) from
dba_hist_active_sess_history where sql_id='XXXx' and sample_time>sysdate-1
Group by sql_plan_hash_value,sql_plan_line_id order by 3 desc;

和activity 对应的上


SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
  SQL_ID => 'XXXX',
  TYPE => 'TEXT',
  REPORT_LEVEL => 'ALL') AS REPORT
FROM dual;

 

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
  SQL_ID => 'XXXX',
  TYPE => 'HTML',
  REPORT_LEVEL => 'ALL') AS REPORT
FROM dual;
 

 箭头的方向是在做的join和表

select * from table(dbms_xplan.display_cursor('xxx',null,'advanced'));

select * from table(gv$(cursor(select * from table(dbms_xplan.display_awr('xxx',null))))) 

select * from table(gv$(cursor(select * from table(dbms_xplan.display_cursor('xxx',null))))) 

查找SQL中相关表统计信息

SELECT /* ^^script..sql Table Columns */
       v2.line_text
  FROM (
WITH object AS (
SELECT /*+ MATERIALIZE */
       object_owner owner, object_name name
  FROM gv$sql_plan
WHERE inst_id IN (SELECT inst_id FROM gv$instance)
   AND sql_id = '2dx6gfdkfhza1'
   AND object_owner IS NOT NULL
   AND object_name IS NOT NULL
UNION
SELECT object_owner owner, object_name name
  FROM dba_hist_sql_plan
WHERE 
sql_id = '2dx6gfdkfhza1'
   AND object_owner IS NOT NULL
   AND object_name IS NOT NULL
), plan_tables AS (
SELECT /*+ MATERIALIZE */
        'TABLE' object_type, t.owner object_owner, t.table_name object_name
   FROM dba_tab_statistics t, -- include fixed objects
        object o
  WHERE t.owner = o.owner
    AND t.table_name = o.name
  UNION
SELECT 'TABLE' object_type, i.table_owner object_owner, i.table_name object_name
   FROM dba_indexes i,
        object o
  WHERE i.owner = o.owner
    AND i.index_name = o.name
)
SELECT object_name table_name,
       object_owner owner,
       1 line_type,
       1 row_num,
       '<a name="c_'||LOWER(object_name||'_'||object_owner)||'"></a><h3>Table Columns: '||object_name||' ('||object_owner||')</h3>'||CHR(10)||CHR(10)||
       'CBO Statistics and relevant attributes.'||CHR(10)||CHR(10)||
       '<table>'||CHR(10)||CHR(10)||
       '<tr>'||CHR(10)||
       '<th>#</th>'||CHR(10)||
       --'<th>Table Name</th>'||CHR(10)||
       --'<th>Owner</th>'||CHR(10)||
       '<th>Indexes</th>'||CHR(10)||
       '<th>Col<br>ID</th>'||CHR(10)||
       '<th>Column Name</th>'||CHR(10)||
       '<th>Data<br>Type</th>'||CHR(10)||
       '<th>Num<br>Rows</th>'||CHR(10)||
       '<th>Num<br>Nulls</th>'||CHR(10)||
       '<th>Sample<br>Size</th>'||CHR(10)||
       '<th>Perc</th>'||CHR(10)||
       '<th>Num<br>Distinct</th>'||CHR(10)||
       '<th>Low Value</th>'||CHR(10)||
       '<th>High Value</th>'||CHR(10)||
       '<th>Last Analyzed</th>'||CHR(10)||
       '<th>Avg<br>Col<br>Len</th>'||CHR(10)||
       '<th>Density</th>'||CHR(10)||
       '<th>Num<br>Buckets</th>'||CHR(10)||
       '<th>Histogram</th>'||CHR(10)||
       '<th>Global<br>Stats</th>'||CHR(10)||
       '<th>User<br>Stats</th>'||CHR(10)||
       '</tr>'||CHR(10) line_text
  FROM plan_tables
WHERE object_type = 'TABLE'
UNION ALL
SELECT v.table_name,
       v.owner,
       2 line_type,
       ROWNUM row_num,
       CHR(10)||'<tr>'||CHR(10)||
       '<td class="r">'||ROWNUM||'</td>'||CHR(10)||
       --'<td>'||v.table_name||'</td>'||CHR(10)||
       --'<td>'||v.owner||'</td>'||CHR(10)||
       '<td class="c">'||v.indexes||'</td>'||CHR(10)||
       '<td class="c">'||v.column_id||'</td>'||CHR(10)||
       '<td>'||v.column_name||'</td>'||CHR(10)||
       '<td>'||v.data_type||'</td>'||CHR(10)||
       '<td class="r">'||v.num_rows||'</td>'||CHR(10)||
       '<td class="r">'||v.num_nulls||'</td>'||CHR(10)||
       '<td class="r">'||v.sample_size||'</td>'||CHR(10)||
       '<td class="r">'||v.sample_size_perc||'</td>'||CHR(10)||
       '<td class="r">'||v.num_distinct||'</td>'||CHR(10)||
       '<td nowrap>'||v.low_value||'</td>'||CHR(10)||
       '<td nowrap>'||v.high_value||'</td>'||CHR(10)||
       '<td nowrap>'||v.last_analyzed||'</td>'||CHR(10)||
       '<td class="r">'||v.avg_col_len||'</td>'||CHR(10)||
       '<td class="r">'||v.density||'</td>'||CHR(10)||
       '<td class="r">'||v.num_buckets||'</td>'||CHR(10)||
       '<td>'||v.histogram||'</td>'||CHR(10)||
       '<td class="c">'||v.global_stats||'</td>'||CHR(10)||
       '<td class="c">'||v.user_stats||'</td>'||CHR(10)||
       '</tr>'||CHR(10) line_text
  FROM (
SELECT /*+ NO_MERGE LEADING(pt t c) */
       t.table_name,
       t.owner,
       NVL(ic.index_count,0) indexes,
       c.column_id,
       c.column_name,
       c.data_type,
       c.data_default,
       t.num_rows,
       c.num_nulls,
       c.sample_size,
       CASE
       WHEN t.num_rows > c.num_nulls THEN TO_CHAR(LEAST(100, ROUND(c.sample_size * 100 / (t.num_rows - c.num_nulls), 1)), '99999990D0')
       WHEN t.num_rows = c.num_nulls THEN TO_CHAR(100, '99999990D0')
       END sample_size_perc,
       c.num_distinct,
       c.low_value,
       c.high_value high_value,
       TO_CHAR(c.last_analyzed, 'YYYY-MM-DD/HH24:MI:SS') last_analyzed,
       c.avg_col_len,
       LOWER(TO_CHAR(c.density, '0D000000EEEE')) density,
       c.num_buckets,
       c.histogram,
       c.global_stats,
       c.user_stats
  FROM plan_tables pt,
       dba_tables t,
       dba_tab_cols c,
       (SELECT i.table_owner,
               i.table_name,
               i.column_name,
               COUNT(*) index_count
          FROM dba_ind_columns i
         GROUP BY
               i.table_owner,
               i.table_name,
               i.column_name ) ic
WHERE pt.object_type = 'TABLE'
   AND pt.object_owner = t.owner
   AND pt.object_name = t.table_name
   AND t.owner = c.owner
   AND t.table_name = c.table_name
   AND ic.table_owner (+) = c.owner
   AND ic.table_name (+) = c.table_name
   AND ic.column_name (+) = c.column_name
ORDER BY
       t.table_name,
       t.owner,
       NVL(ic.index_count,0) DESC,
       c.column_id NULLS LAST,
       c.column_name) v
UNION ALL
SELECT object_name table_name,
       object_owner owner,
       3 line_type,
       1 row_num,
       '<tr>'||CHR(10)||
       '<th>#</th>'||CHR(10)||
       --'<th>Table Name</th>'||CHR(10)||
       --'<th>Owner</th>'||CHR(10)||
       '<th>Indexes</th>'||CHR(10)||
       '<th>Col<br>ID</th>'||CHR(10)||
       '<th>Column Name</th>'||CHR(10)||
       '<th>Data<br>Type</th>'||CHR(10)||
       '<th>Num<br>Rows</th>'||CHR(10)||
       '<th>Num<br>Nulls</th>'||CHR(10)||
       '<th>Sample<br>Size</th>'||CHR(10)||
       '<th>Perc</th>'||CHR(10)||
       '<th>Num<br>Distinct</th>'||CHR(10)||
       '<th>Low Value</th>'||CHR(10)||
       '<th>High Value</th>'||CHR(10)||
       '<th>Last Analyzed</th>'||CHR(10)||
       '<th>Avg<br>Col<br>Len</th>'||CHR(10)||
       '<th>Density</th>'||CHR(10)||
       '<th>Num<br>Buckets</th>'||CHR(10)||
       '<th>Histogram</th>'||CHR(10)||
       '<th>Global<br>Stats</th>'||CHR(10)||
       '<th>User<br>Stats</th>'||CHR(10)||
       '</tr>'||CHR(10) line_text
  FROM plan_tables
WHERE object_type = 'TABLE'
UNION ALL
SELECT object_name table_name,
       object_owner owner,
       4 line_type,
       1 row_num,
       CHR(10)||'</table>'||CHR(10)||CHR(10) line_text
  FROM plan_tables
WHERE object_type = 'TABLE') v2
ORDER BY
       v2.table_name,
       v2.owner,
       v2.line_type,
       v2.row_num;

 


http://www.kler.cn/a/576701.html

相关文章:

  • MetaGPT发布的MGX与Devin深度对比
  • C# 中的多线程同步机制:lock、Monitor 和 Mutex 用法详解
  • Python 实现多语言朗读与单词选择测验程序
  • ESP32的IDF开发学习-驱动gc9a01屏幕
  • Android中的AsyncTask。
  • 全星FMEA软件:汽车电子行业研发管理高效之选
  • Spring Boot面试问答
  • openharmony 软总线-设备发现流程
  • AntV X6使用Vue组件作为渲染节点
  • Qt信号与槽机制实现原理
  • PHP之连接Mysql
  • Aruco 库详解:计算机视觉中的高效标记检测工具
  • fastjson漏洞
  • 更强的蛋白质突变效应预测!一键推理 DePLM 去噪蛋白质语言模型
  • MySQL DDL数据定义语句
  • Qt 实现抽屉效果实例
  • 用python做一个简单的可以调用手机摄像头进行车牌识别的H5页面
  • 数据中心精密配电监控:安科瑞精密配电监控解决方案破解高能耗与低效率困局
  • 联核科技AGV无人叉车的应用场景有哪些?
  • STM32 ADC模数转换