周六下午,收到EM alert邮件
Sfc12db 的TEMP 表空间使用率达到99% 查看alert log
在alert log中有 ORA-1652错误 unable to extend temp segment by 128 in tablespace 。
用如下语句可以查询到是什么程序大量使用的temp tablespace
SELECT se.username,sid,serial#,sql_address,machine,program,tablespace,segtype,contents
FROM v$session se ,
v$sort_usage su
WHERE se.saddr=su.session_addr
发现为PG1中有几个大的查询在跑 例如
其中一个sql-address的查询为
select * from v$sqltext
where address='C0000000C34DE9A8'
order by piece
是一个非常大的排序查询。可能是因此消耗了 过多的temp tablespace
select sv.ROUTE_CODE 闽, sum(s.pass) OK计,sum(s.defect) 痷
タNG计,sum(s.fail) total_fail, sum(s.pass)-sum(ndf) ΩOK
计,sum(ndf) 代OK计 , sum(ndf_times) 代OKΩ计,sum(ndf_repai
r) 秈蝴代OK计, sum(s.pass)+sum(fail) 瑈硄秖, round(sum(s.p
ass)/decode((sum(s.pass)+sum(fail)),0,999999,sum(s.pass)+sum(fai
l)),4) ▆瞯, round((sum(s.pass)-sum(ndf))/decode((sum(s.pass)+s
um(fail)),0,999999,sum(s.pass)+sum(fail)),4) 硄瞯, round(sum(n
df)/decode((sum(s.pass)+sum(fail)),0,999999,sum(s.pass)+sum(fail
)),4) 代计代瞯, round(sum(ndf_times)/decode((sum(s.pass)+
sum(fail)),0,999999,sum(s.pass)+sum(fail)),4) 代Ω计代瞯 fr
om askey_site_statistics s,askey_wo w,askey_site_view sv where
s.wo_key=w.wo_key and s.ws_id=sv.WS_ID and sv.iroute_code not i
n (7 ,14,28) and s.work_time>=:1 and s.work_time<=:2 and s.wo_k
ey in (select val from askey_cache) group by sv.ROUTE_CODE order
by sv.route_code
对于这种问题的最简单的解决办法就是 将这个排序查询kill掉
Alter system kill session sid ,serial#
如果只是短暂的存在 可以不做处理。