您当前位置:主页 > 资讯攻略 >
来源:未知
2019-08-27 09:21:40 浏览: 分类:资讯攻略

关于Oracle一些常用脚本的汇总(2)

碎片检查

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

下一篇:oracle 安装脚本
攻略资讯
安卓软件