数据库方面一些常用sql

跟踪数据库性能

一 .首先跟踪windows系统性能(cpu,mem,read,write等)

二. 跟踪数据库

(1) 查询等待事件:
select sid,
event,
p1text,
p1,
p1raw,
seconds_in_wait,
state,
wait_time
from v$session_wait
where event <> 'SQL*Net message from client';

说明: 由BI分析

(2) 查询当前正在执行的SQL(常用)
SELECT /*+USE_NL(A,C)*/a.username,
   a.machine,
   a.program,
   a.sid,
   a.serial#,
   a.status,
   c.piece,
   c.sql_text
   FROM v$session a,
   v$process b,
   v$sqltext c
   WHERE a.status='ACTIVE'
   AND b.addr=a.paddr
   AND a.sql_address=c.address(+)
   ORDER BY A.SID,c.piece;

说明: 当系统性能严重下降时观察哪些sql语句在执行

(3) 查询系统中效率低的语句
SELECT * FROM V$SQLAREA SA ORDER BY SA.DISK_READS DESC;

说明: sql_text-----sql语句
executions---执行次数
cpu_time-----cpu运行总时间(毫秒)
disk_read----磁盘读时间
cpu_time/executions---平均执行时间



三. 跟踪数据库

(1) 查看oracle 允许的最大的session:

登陆sqlplus,
SQL>show parameter sessions

NAME TYPE VALUE
------------------------------------ ----------- -----------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
logmnr_max_persistent_sessions integer 1
mts_sessions integer 165
sessions integer 170 ------------>就是这个。
shared_server_sessions integer 165


其中的sessions 就是。

其他参数查看方法类似。
如果不用sqlplus 也可以使用sql:

SQL>select value from v$parameter where name='sessions';

VALUE
-----------------------------------------------------------
170


(2) ====================================================

select count(*) from v$session;

select count(*) from v$session where program like 'JDBC%';

select machine,count(*) from v$session group by machine;

select machine,program,count(*) from v$session group by machine,program;

====================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值