一些性能查询的SQL 备忘

简介:

--检查数据库的等待事件

from v$session_wait
where event not like 'SQL%' and event not like 'rdbms%'

 

--找出系统中耗时的操作
select b.username username,a.disk_reads reads,
       a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions)
           rds_exec_ratio,
       a.sql_text statement
from v$sqlarea a,dba_users b
where a.parsing_user_id=b.user_id
and   a.disk_reads >100000
order by a.disk_reads desc;

--查看buffer中耗时的操作
select * from 
  (select address,rank() over( order by buffer_gets desc) as rank_bufgets,
   to_char(100*ratio_to_report(buffer_gets) over(),'999.99') pct_bufgets
   from v$sql )
  where rank_bufgets <11;

-- 查看buffer中耗时的操作
select * from 
  (select sql_text,rank() over( order by buffer_gets desc) as rank_bufgets,
   to_char(100*ratio_to_report(buffer_gets) over(),'999.99') pct_bufgets
   from v$sql )
  where rank_bufgets <11;


--查找前十条性能差的SQL
select * from (select parsing_user_id
executions,sorts,command_type,disk_reads,
sql_text from v$sqlarea order by disk_reads desc)
where rownum<10;

--等待时间最多的5和系统等待事件的获取
 select * from (select * 
 from v$system_event where event not like 'sql%' order by
total_waits desc) where rownum<=5

--检查运行很久的SQL
column username format a12
column opname format a16
column progress format a8
SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*100 / TOTALWORK,0) || '%' AS
PROGRESS,TIME_REMAINING,SQL_TEXT FROM V$SESSION_LONGOPS , V$SQL WHERE TIME_REMAINING <>
0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_VALUE = HASH_VALUE;

--检查消耗CPU最高的进程
SET LINE 240
SET VERIFY OFF
COLUMN SID FORMAT 999
COLUMN PID FORMAT 999
COLUMN S_# FORMAT 999
COLUMN USERNAME FORMAT A9 HEADING "ORA USER"
COLUMN PROGRAM FORMAT A29
COLUMN SQL FORMAT A60
COLUMN OSNAME FORMAT A9 HEADING "OS USER"
SELECT P.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL#
S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1, 80))
SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS
= A.ADDRESS (+) AND P.SPID LIKE '%&1%';


--检查碎片程度高的表
 select segment_name table_name,count(*) 
extents from dba_segments where owner not in ('sys','system') 
group by segment_name having count(*)=(select max(count(*)) 
from dba_segments group by segment_name) ;

--检查表空间的1/O比例
 select df.tablespace_name name,df.file_name "FILE",
F.phyrds pyr,f.phyblkrd pbr,f.phywrts pyw,f.phyblkwrt pbw from v$filestat f,
dba_data_files df
where f.file#=df.file_id order by df.tablespace_name;


select df.tablespace_name name,df.file_name "File"
from v$filestat f,dba_data_files df
where f.file#=df.file_id
order by tablespace_name


--检测文件系统的I/O比例

select substr(a.file#,1,2) "#",substr(a.name,1,30) "NAME",
a.status,a.bytes,b.phyrds,b.phywrts 
from v$datafile a,
v$filestat b
where a.file# = b.file#

--检查死锁及处理
select sid,serial#,username,schemaname,osuser,machine,
terminal,program,owner,object_name,object_type,o.object_id
from dba_objects o,v$locked_object l,v$session s
where o.object_id=l.object_id and s.sid=l.session_id;

 

 
 
转:http://www.cnblogs.com/jerryxing/archive/2013/02/19/2916471.html


本文转自 张冲andy 博客园博客,原文链接: http://www.cnblogs.com/andy6/p/6006099.html   ,如需转载请自行联系原作者
相关文章
|
6月前
|
SQL 监控 关系型数据库
一键开启百倍加速!RDS DuckDB 黑科技让SQL查询速度最高提升200倍
RDS MySQL DuckDB分析实例结合事务处理与实时分析能力,显著提升SQL查询性能,最高可达200倍,兼容MySQL语法,无需额外学习成本。
|
6月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
6月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
7月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
439 18
|
5月前
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
329 0
|
5月前
|
SQL 关系型数据库 MySQL
为什么这些 SQL 语句逻辑相同,性能却差异巨大?
我是小假 期待与你的下一次相遇 ~
251 0
|
7月前
|
SQL 人工智能 数据库
【三桥君】如何正确使用SQL查询语句:避免常见错误?
三桥君解析了SQL查询中的常见错误和正确用法。AI产品专家三桥君通过三个典型案例:1)属性重复比较错误,应使用IN而非AND;2)WHERE子句中非法使用聚合函数的错误,应改用HAVING;3)正确的分组查询示例。三桥君还介绍了学生、课程和选课三个关系模式,并分析了SQL查询中的属性比较、聚合函数使用和分组查询等关键概念。最后通过实战练习帮助读者巩固知识,强调掌握这些技巧对提升数据库查询效率的重要性。
233 0
|
9月前
|
SQL 关系型数据库 PostgreSQL
CTE vs 子查询:深入拆解PostgreSQL复杂SQL的隐藏性能差异
本文深入探讨了PostgreSQL中CTE(公共表表达式)与子查询的选择对SQL性能的影响。通过分析两者底层机制,揭示CTE的物化特性及子查询的优化融合优势,并结合多场景案例对比执行效率。最终给出决策指南,帮助开发者根据数据量、引用次数和复杂度选择最优方案,同时提供高级优化技巧和版本演进建议,助力SQL性能调优。
966 1
|
8月前
|
SQL
SQL中如何删除指定查询出来的数据
SQL中如何删除指定查询出来的数据
|
9月前
|
SQL 存储 弹性计算
OSS Select 加速查询:10GB CSV 文件秒级过滤的 SQL 语法优化技巧
OSS Select 可直接在对象存储上执行 SQL 过滤,跳过文件下载,仅返回所需数据,性能比传统 ECS 方案提升 10~100 倍。通过减少返回列、使用等值查询、避免复杂函数、分区剪枝及压缩优化等技巧,可大幅降低扫描与传输量,显著提升查询效率并降低成本。
265 0