碎片检查
select表空间名称,sqrt(max(blocks)/sum(blocks))*
(100/sqrt(sqrt(计数(块数)))fsfi
来自数据库管理员可用空间
group by表空间名称order by 2;
fsfi值越小,碎片越多。空闲空碎片索引
检查reverse_key索引
选择o .对象名
从dba_objects o
其中owner = ' DB _ ACCT '
和O.OBJECT_ID
(从系统中选择I.OBJ#。IND$ I
其中BITAND(I.PROPERTY,4)=4)
查看具体的后台进程号
从v$session a,v$process b中选择spid,其中a.PADDR=b.ADDR,sid= ' '
查看死锁表
选择SID,解码(BLOCK,0,' NO ',' YES ')拦截器,
DECODE(请求,0,'否','是' )服务员
来自V$LOCK
其中请求& gt0或块& gt0
按DESC区块排序;
检查其余的表空
select a .表空间名称,可用/总计* 100%可用,可用/1024/1024 & quot;免费(M)& quot;从
(select sum(bytes) free,tablespace _ name from DBA _ free _ space group by tablespace _ name)a,
(select sum(bytes) total,tablespace _ name from DBA _ data _ files group by tablespace _ name)b
其中a .表空间名称=b .表空间名称
按pct_free排序;
检查索引创建的进度。
select sid,来自v$session _ longops的消息,其中sid ='' order by start_time
检查付款收据。
SELECT AREA_ID,to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),to_char(count(1))作为ACCT支付接口的cnt
其中支付日期& gt=sysdate-1且FLAG='0' group by AREA_Id
查看消耗最多资源的sql
SELECT * FROM (SELECT解析_用户标识执行,排序,命令_类型,
DISK_READS,SQL _ text FROM v $ SQL area ORDER BY DISK _ READS desc)其中ROWNUM & lt10
检查占用系统资源的进程号spid。
选择a .用户名,a .机器,a .程序,a.sid,a .序列号,a .状态,c .片段,c.sql_text
FROM v$session a,v$process b,v$sqltext c其中b.spid=“”,b.addr=a.paddr,a.sql_address=c.address(+)
按单件订购
检查占用大量系统io的会话
选择se.sid、se.serial#、pr。SPID,用户名,状态,终端,程序,
se。模块,se.sql_address,st.event,st.p1text,si.physical_reads,si.block_changes
FROM v$session se,v$session_wait st,v$sess_io si,v$process pr其中st.sid=se.sid,st.sid=si.sid
还有se。PADDR=pr。ADDR和锡德& gt6,st.wait_time=0,st.event不像' %SQL% '那样按物理读取DESC排序
关于检索结果的一些注释:
1.我是按照每个等待会话的物理读取顺序,因为这关系到实际的IO。
2.你可以看看这些等待的过程都在忙些什么。说法合理吗?
从v$session中选择sql_address,其中sid =;
select * from v $ SQL text where address =;
执行上面两条语句,得到这个会话的语句。
也可以使用alter system kill session' sid,serial # ';取消这个环节。
本文链接:http://www.123down.cn/gonglue/227290.html