【ORACLE】分析oracle会话及性能语句23条

************************************************************************
****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************

--查看集群等待cache busy--等待资源  buffer
busy --数据块一致读等待

SELECT inst_id,event,p1 file_number,p2 block_number,wait_time

FROM gv$session_wait

WHERE eventIN (‘global
cache busy‘,‘buffer busy global cache‘,‘buffer busy global
cr‘);

--全局锁的会话

SELECT

d1.INST_ID inst_id,s.sid,p.spid,

d1.RESOURCE_NAME1 resource_name,

s.sid,sw.EVENT,sw.WAIT_TIME

FROM gv$ges_enqueue d1,gv$process p,gv$session s,gv$session_wait sw

WHERE blocker=1

AND (d1.INST_ID=p.INST_IDand d1.pid=p.spid)

AND (p.inst_id=s.INST_IDand p.addr=s.paddr)

AND (s.INST_ID=sw.INST_IDand s.sid=sw.sid)

ORDERBY sw.WAIT_TIMEdesc;

--查询缓存融合写操作的比率

SELECT A.INST_ID "Instance",

A.VALUE/B.value "Cache fusion writes ratio"

FROM GV$SYSSTAT A,GV$SYSSTAT B

WHERE A.name=‘DBWR fusion writes‘

AND  B.name=‘physical writes‘

AND  B.INST_ID=A.inst_id

GROUPBY A.INST_ID, A.VALUE/B.VALUE;

--查询网络地址

SELECT *FROM GV$CLUSTER_INTERCONNECTS;

--一致性数据块请求时间

SELECT b1.INST_ID,b2.VALUE "blocks recevied",

b1.VALUE "block recevied time",

((b1.value/b2.value)*10) "avg block rec time(ms)"

FROM gv$sysstat b1,gv$sysstat b2

WHERE b1.name=‘gc cr block receive time‘

AND  b2.name=‘gc cr blcoks recevied‘

AND b1.inst_id=b2.INST_ID

AND b2.value <>0;

--查看进程,sga资源

SELECT resource_name,current_utilization cu,max_utilization mu,

a.INITIAL_ALLOCATION,limit_value lv

FROM gv$resource_limit a

WHERE max_utilization >0;

--查看shared_pool_size资源

SELECT *

FROM V$SGASTAT

WHERENAMELIKE‘g%‘;

--查看oracle并行进程

SELECT inst_id,statistic,value

FROM gv$pq_sysstat

WHEREvalue>0

orderby1,2;

--查看回归段正在进行的事务

select a.name,b.xacts,c.sid,c.SERIAL#,c.USERNAME,d.SQL_TEXT

from v$rollname a,v$rollstat b,v$session c,v$sqltext d,v$transaction e

where a.usn=b.usn

and b.usn=e.xidusn

and c.taddr=e.addr

and c.sql_address=d.address

and c.sql_hash_value=d.hash_value;

--查看unod事务表

select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarecfrom
v$transaction;

--查看操作系统oracle进程

SELECT a.username,a.COMMAND,a.program,spid,sid,a.serial#

FROM v$session a,v$process b

WHERE a.paddr=b.addr

and spid=‘5816‘;

--查看操作系统进程对应的sql语句

select b.username,a.sql_text

from v$sql a,v$session b

where b.sql_address=a.address

and b.sql_hash_value=a.hash_value

and b.sid=‘5816‘;

--查看cpu数量

selectname,valuefrom
v$parameter wherename=‘cpu_count‘;

--库缓存命中率

selectsum(pins)/(sum(pins)+sum(reloads))*100 "hit
ratio"

from v$librarycache;

--数据字典命中率

select (1-sum(getmisses)/sum(gets))*100
"hit ratio"

from v$rowcache;

--PGA内存排序命中率

select a.value "Disk Sorts",b.value "Memroy sorts",

round((100*b.value)/decode((a.value+b.value),0,1,(a.value+b.value)),2) "Pct
memory sorts"

from v$sysstat a,v$sysstat b

where a.name=‘sorts (disk)‘

and b.name=‘sorts (memory)‘;

--缓存区,缓存命中率

select (1-sum(decode(name,‘physical
reads‘,value,0))/

(sum(decode(name,‘db
block gets‘,value,0))+

sum(decode(name,‘consistent
gets‘,value,0))

)

)*100 "hit radio"

from v$sysstat;

--10大占用系统内存语句,总的内存使用量

selectsum(pct_bufgets) "percent"

from (selectrank()over
(orderby buffer_getsdesc)as
rank_bufgets,

to_char(100* ratio_to_report(buffer_gets)over
(),‘999.99‘) pct_bufgets

from v$sqlarea)

where rank_bufgets <11;

--查看脏块

select objd,count(*)

from v$bh

where dirty=‘Y‘

groupby objdorderbycount(*);

--查看oracle操作系统进程

select *from v$processwhere
backgroundisnull;

--查看操作系统进程对应的sql语句

select sql_textfrom v$sql

where sql_idin

(select sql_idfrom
gv$session

where paddrin
(select addrfrom gv$processwhere
program =‘ORACLE.EXE (SHAD)‘));

--查看热点对象

--查看每个session占用cpu情况

select ss.sid,se.SERIAL#,se.command,ss.valueCPU
,se.username,se.program

from v$sesstatss, v$session se

where ss.statistic#in

(select statistic#

from v$statname

wherename =‘CPU
used by this session‘)

and se.sid=ss.sid

and ss.sid>6

orderbyCPUdesc;

--查看pid对应的sql语句

select s.sid,w.event, w.wait_time, w.seq#, q.sql_text

from v$session_wait w, v$session s, v$process p, v$sqlarea q

where s.paddr=p.addr

--and s.sid=146

and s.SERIAL#=6488

and s.sql_address=q.address;

时间: 2024-11-16 21:55:34

【ORACLE】分析oracle会话及性能语句23条的相关文章

【测试】通过SYS用户,对SCOTT用户的会话进行跟踪,并分析此会话中性能消耗较高的SQL,分析并给出优化建议。

①连接到scott下,查询scott对应的sid,serial# SQL> select sid,serial#,username from v$session where username='SCOTT'; SID SERIAL# USERNAME ---------- ---------- ------------------------------ 133 15 SCOTT ②开启对scott用户的跟踪: SQL>exec dbms_system.set_sql_trace_in_ses

前端性能优化 23 条建议

性能优化是把双刃剑,有好的一面也有坏的一面.好的一面就是能提升网站性能,坏的一面就是配置麻烦,或者要遵守的规则太多.并且某些性能优化规则并不适用所有场景,需要谨慎使用,请读者带着批判性的眼光来阅读本文. 本文相关的优化建议的引用资料出处均会在建议后面给出,或者放在文末(有些参考资料可能要梯子才能观看). 1. 减少 HTTP 请求 一个 HTTP 请求过程: 一个 HTTP 请求需要经历以上过程,接下来看一个具体的例子: 这是一个 HTTP 请求,请求的文件大小为 28.4KB. 名词解释: Q

前端性能优化23条

1. 减少HTTP请求次数 尽量合并图片.CSS.JS.比如加载一个页面,如果有5个css文件的话,那么会发出5次http请求,这样会让用户第一次访问你的页面的时候会长时间等待.而如果把这个5个文件合成一个的话,就只需要发出一次http请求,节省网络请求时间,加快页面的加载.   2. 使用CDN 网站上静态资源即css.js全都使用cdn分发,图片亦然.   3. 避免空的src和href 当link标签的href属性为空.script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的

在oracle中跟踪会话执行语句的几种方法

生成sql trace可以有以下几种方式: 1.参数设置:非常传统的方法. 系统级别: 参数文件中指定: sql_trace=true 或 SQL> alter system set sql_trace=true; 注意:系统级别启用sql_trace,会产生大量trace文件,很容易耗尽磁盘空间,因此一般设置会话级别,并且及时关闭. 会话级别: SQL> alter session set sql_trace=true; SQL> 执行sql SQL> alter session

ORACLE将执行过的SQL语句存放在内存的共享池

Oracle SQL性能优化深入浅出 ORACLE将执行过的SQL语句存放在内存的共享池(shared buffer pool)中,可以被所有的数据库用户共享.当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同,ORACLE就能很快获得已经被解析的语句以及最好的执行路径. 这个功能大大地提高了SQL的执行性能并节省了内存的使用. 为了不重复解析相同的SQL语句,在第一次解析之后,Oracle将SQL语句存放在内存中.这块位于系统全局区域SGA(systemglob

探究 Oracle 高水位对数据库性能影响

2016-08-11 陈龙 恩墨学院 探究 Oracle 高水位对数据库性能影响1大家好!我是来自云和恩墨的陈龙,目前主要负责Oracle技术支持工作.在我开始学习Oracle 的时候就听eygle老师说过,要想学好技术,一定要要多做实验,多做学习记录,理论与实践相结合,才能真正理解吸收那些知识,所以今天我想分享一下对Oracle高水位线与SQL访问性能相关性的研究体会.谈不上很深入的研究,只是想与大家分享我的Oracle学习过程,希望能与大家交流进步.之所以分享这个学习内容,是因为在我曾经经历

分析oracle的执行计划(explain plan)并对对sql进行优化实践

基于oracle的应用系统很多性能问题,是由应用系统sql性能低劣引起的,所以,sql的性能优化很重要,分析与优化sql的性能我们一般通过查看该sql的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对sql进行优化做相应说明. 一.什么是执行计划(explain plan) 执行计划:一条查询语句在oracle中的执行过程或访问路径的描述. 二.如何查看执行计划 1.set autotrace on 2.explain plan for sql语句; select plan_tabl

SQL SERVER性能分析--死锁检测数据库阻塞语句

工作中数据库经常出现内存,找了篇文章 参照CSDN,中国风(Roy)一篇死锁文章 阻塞:其中一个事务阻塞,其它事务等待对方释放它们的锁,同时会导致死锁问题. 整理人:中国风(Roy) 参照Roy_88的博客 http://blog.csdn.net/roy_88/archive/2008/07/21/2682044.aspx 日期:2008.07.20 ************************************************************************

Oracle在Linux下的性能优化

Oracle数据库内存参数的优化 Ø       与oracle相关的系统内核参数 Ø       SGA.PGA参数设置   Oracle下磁盘存储性能优化 Ø       文件系统的选择(ext2/ext3.xfs.ocfs2) Ø       Oracle ASM存储  1.优化oracle性能参数之前要了解的情况 1)物理内存有多大 2)操作系统估计要使用多大内存 3)数据库是使用文件系统还是裸设备 4)有多少并发连接 5)应用是OLTP类型还是OLAP类型 2.oracle数据库内存参