Oracle 暂时表空间过大问题办理-性能调优[Oracle防范]
本文“Oracle 暂时表空间过大问题办理-性能调优[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
查询数据库服务器时,发现数据库服务器磁盘利用空间到达了98%,解析总共的数据文件也不大概到达如此大,经过查询发现原到暂时表空间的利用情形到达了 32G,招致磁盘空间利用慌张.搜索了呼应的文档与资料后,查出暂时表空间主要利用在:
- 索引成立或重成立.
- ORDER BY or GROUP BY (这个是‘罪魁祸首’)
- DISTINCT 操作.
- UNION & INTERSECT & MINUS - Sort-Merge joins. - Analyze 操作
- 有些非常将会惹起temp暴涨(这个也很有大概)
下面是重新成立一个暂时表空间,把本来的默许暂时表空间drop掉(包含里面的暂时数据文件)再重新成立
SQL> create temporary tablespace temp2 Tablespace created. SQL> alter database default temporary tablespace temp2; Database altered. SQL> drop tablespace temp including contents and datafiles; Tablespace dropped. Tablespace created. SQL> alter database default temporary tablespace temp; Database altered. SQL> drop tablespace temp2 including contents and datafiles; Tablespace dropped. SQL> exit |
以上的办法只是暂时释放了暂时表空间的磁盘占用空间,是治标但不是治本的办法,真正的治本的办法是找出数据库中损耗资源对比大的sql语句,然后对其举行优化处理.下面是查询在sort排序区利用的履行耗时的SQL
Select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value))as Space,tablespace,segtype,sql_text from v$sort_usage su,v$parameter p,v$session se,v$sql s where p.name='db_block_size' and su.session_addr=se.saddr and s.hash_value=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid |
以上是“Oracle 暂时表空间过大问题办理-性能调优[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |