--1)查询和定位数据库问题的SQL语句
--Oracle常用性能监控SQL语句.sql

--1查询锁表信息

select vp.SPID,
vs.P1,
vs.P1RAW,
vs.P2,
vs.EVENT,
vsql.SQL_TEXT,
vsql.SQL_FULLTEXT,
vsql.SQL_ID
from v$session vs, v$sql vsql, v$process vp
where vs.SQL_ID = vsql.SQL_ID
and vs.PADDR = vp.ADDR
and vs.WAIT_CLASS <> 'Idle'
order by vs.EVENT

select vp.spid,
lo.session_id,
lo.oracle_username,
lo.os_user_name,
ao.object_name
from v$process vp, v$session vs, v$locked_object lo, all_objects ao
where vp.addr = vs.paddr
and vs.process = lo.process
and lo.object_id = ao.object_id

--2解锁被锁的表(sid,serial#)
alter system kill session '324,50855';

--3当前活跃会话历史表
select *
from dba_hist_active_sess_history
where session_id = 324 --sid
order by sample_time desc;

--2)索引优化

--开启监控会话的语句
alter session set sql_trace = true;
dbms_system.set_sql_trace_in_session(sid, serial#, true);
dbms_session.set_sql_trace(true);

--索引分析
analyze index act_idx_task_procinst validate structure;

--索引使用分析 lfPercent>20 需要重建索引
select (idx.del_lf_rows_len / idx.lf_rows_len) * 100 as lfPercent
from index_stats idx;

--索引重建
alter index act_idx_task_procinst rebuild;

---ACT_HI_TASKINST (TRUNC(START_TIME_))

--获取sql_id
select vs.sql_id, vs.sql_fulltext, vs.runtime_mem
from v$sqlarea vs
where vs.sql_fulltext like '%papc_bdqd_orders%'
order by vs.last_load_time desc;

--根据SQL_ID得到SQL语句的执行计划
select plan_table_output
from table(dbms_xplan.display_cursor('0sb2f19wmm82u', '0', 'all'));

--3)分析sql性能问题需要关注的表
--根据SQL语句中的条件字段,确定每一项条件中返回的记录数有多少,
--做表连接时应该按照尽量用记录数(或者中间结果集)小的表作为驱动表的原则

--查询表信息 是否进行了收集统计信息
--表信息
select dt.owner, dt.table_name, dt.last_analyzed, dt.num_rows, dt.blocks
from dba_tables dt
where dt.owner = 'papcdata'
and dt.table_name = 'papc_bse_city';

--查询索引信息
--最理想的情况 CLUSTERING_FACTOR = 表的数据块总数 BLOCKS
--表的索引信息
select di.index_name,
di.index_type,
di.blevel,
di.leaf_blocks,
di.last_analyzed,
di.distinct_keys,
di.clustering_factor
from dba_indexes di
where di.owner = 'papcdata'
and di.table_name = 'papc_bse_city';

--查询表的列上使用了索引信息
select dic.index_name, dic.column_name, dic.column_position
from dba_ind_columns dic
where dic.table_owner = 'papcdata'
and dic.table_name = 'papc_bse_city';

--查询表中使用相关列的信息1
select dtcs.column_name,
dtcs.num_distinct,
dtcs.num_nulls,
dtcs.density,
dtcs.low_value,
dtcs.high_value,
dtcs.last_analyzed,
dtcs.histogram
from dba_tab_col_statistics dtcs
where dtcs.owner = 'papcdata'
and dtcs.table_name = 'papc_bse_city';

--查询表中使用相关列的信息2
select dtc.column_name,
dtc.num_distinct,
dtc.num_nulls,
dtc.density,
dtc.low_value,
dtc.high_value,
dtc.histogram,
dtc.last_analyzed
from dba_tab_columns dtc
where dtc.owner = 'papcdata'
and dtc.table_name = 'papc_bse_city';

/*+ INDEX(image_for_policy, IX_IMAGE_FOR_POLICY_CODE) */
exec dbms_stats.GATHER_TABLE_STATS(ownname => 'LIFEDATA',
tabname => 'IMAGE_FOR_POLICY',
estimate_percent => 100,
method_opt => 'FOR COLUMNS DOCUMENT_CODE SIZE 1');

select sql_id,
round(cpu_time / executions / 1000000, 2) cpu_time_s,
round(elapsed_time / executions / 1000000, 2) elapsed_time_s,
round(buffer_gets / executions, 2) buffer_gets,
executions,
parsing_user_id,
round(ROWS_PROCESSED / executions, 2) ROWS_PROCESSED
from v$sql
where sql_id in ('c8t01f69awtw9', 'f0kr8h3dq7dxm');

--数据缓冲命中率 Buffer Hit% < 95% db_cache_size 需要调整,出现db file sequential read 内存排序的占比 In - memory Sort% <> 100% 需调整PGA的大小
--共享池中sql解析的命中率 Library Hit% < 95% 加大共享池,使用绑定变量 修改cursor_shring 软解析占比 Soft Parse% < 95% 需要使用绑定变量 < 80%SQL 没被重用 执行次数占分析次数的百分比 Execute to Parse %值偏小,说明软、硬解析比例过大、快速软解析比例小

Oracle中查询和定位数据库问题的SQL语句的更多相关文章

  1. 数据库中查询json 样式的值的sql语句

    参考:http://www.lnmp.cn/mysql-57-new-features-json.html 方式一: 可以查到json中的Key:value SELECT * FROM EDI.edi ...

  2. ***mysql中查询今天、昨天、上个月sql语句

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天Select * FROM 表名 Where TO_DAYS( NOW( ) ...

  3. Oracle中scott用户下基本表练习SQL语句

    --选择部门中30的雇员SELECT * from emp where DEPTNO=30;--列出所有办事员的姓名.部门.编号--采用内连接方式,也就是等值链接,也是最常用的链接SELECT ena ...

  4. oracle 实时查询最耗CPU资源的SQL语句

    1. 先通过top命令查看产用资源较多的spid号 2.查询当前耗时的会话ID,用户名,sqlID等: select sid,serial#,machine,username,program,sql_ ...

  5. Oracle中的表构造导出到word Sql语句

    select * from ( SELECT t1.Table_Name AS "表名称", t3.comments AS "表说明",  t1.Column_ ...

  6. oracle 中 某个字段的长度不够的sql 语句

    alter  table 表名 modify(字段名  类型)  之前字段type 的长度为50 现在改为100 举例 : alter table psp_model modify(type  var ...

  7. Oracle中统计block空闲情况的一个SQL语句

    此SQL来自网络,地址见具体内容.介绍表空间回收原理的文章参考此链接: https://oracle-base.com/articles/misc/reclaiming-unused-space#sh ...

  8. Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令

    Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令 ------------------------------------------------------------------ ...

  9. ORACLE中查询语句的执行顺及where部分条件执行顺序测试

    Oracle中的一些查询语句及其执行顺序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查询条件: 1)LIKE:模糊查询,需要借助两个通配符, ...

随机推荐

  1. 网络应用软件结构-----CS与BS结构(网络基本知识小结)

    1.网络的大致结构 2.网络编程 通过直接或间接地使用网络通讯的协议实现计算机与计算机之间的通讯.在TCP/IP协议层主要麦网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的 ...

  2. 超级简单的跨平台高性能音视频播放框架QtAv编译指南

    目录 一.了解QtAv 二.相关文章 三.下载QtAv源码 四.下载QtAv依赖库 五.设置环境变量 1.gcc设置方式 2.msvc(cl)设置方式 六.编译 七.测试 一.了解QtAv 这几天抱着 ...

  3. [python]MS17-010自动化扫描脚本

    一种是3gstudent分享的调用Nsa泄露的smbtouch-1.1.1.exe实现验证,另一种是参考巡风的poc.这里整合学习了下两种不同的方法. import os import fileinp ...

  4. [WIP]webpack 概念

    创建: 2019/04/09 概念    入口 指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始. 进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖 ...

  5. E20180506-hm

    更新: 2019/02/19 原来忘记分类,把此博文归入单词类 criterion n. 规范; (批评.判断等的) 标准,准则; criteria  n. (批评.判断等的) 标准,准则( crit ...

  6. Lightoj1000【简单A+B】

    balababalabalabala! #include<stdio.h> #include<queue> #include<string.h> #include& ...

  7. 我不知道的C#—字符串池机制

    字符串具有值类型的特点对字符串,对同一个字符串大量修改或者对多个引用赋值同一个字符串对象时会产生大量的临时字符串对象,影响性能,但是CLR为我们做了一些工作来消除这些弊端.      对同一个字符串大 ...

  8. 监控利器---Zabbix(一)

    开源监控软件对比 Cacti(英文含义仙人掌) 是一套基于PHP.MySQL.SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,简化RRDt ...

  9. 关于idea中使用lamb表达式报错:ambda expressions are not supported at this language level

    我使用的是jdk1.8,使用lamb表达式的时候,报错 ambda expressions are not supported at this language level, 后来,设置了 接着重启了 ...

  10. python连接mysql时连接不到test文件夹怎么办

    最新版mysql安装后默认是没有test文件夹的,这时候需要我们自己创建一个test文件夹, 文件默认路径如下    C:\ProgramData\MySQL\MySQL Server 5.7\Dat ...