2008-5-27 11:16
小玩将
临时表空间异常增长
临时表空间在什么情况下会异常增长
现有环境 AIX5306+ORACLE10203,故障描述如下:
1、 在生产机上,当日常有超过17个左右的并发数据库操作,则会出现数据库临时表空间不足的情况,而每个并发操作基本上是针对一个分行一天的数据进行Group by 操作,且每个分行一天的数据量最多不会超过300条记录数,数据文件大小也就几百兆,通过监控,每个并发操作需要8-10G的临时表空间,且与并发数是成倍增长的,即如果有17个并发操作总共就需要17*8=136G以上的临时表空间。但是同样的操作,同样的数据量,每个并发操作在测试机上只需要不超过300M的临时表空间。
2、 在生产机上当有超过17个左右的并发数据库操作,出现临时表空间不足的情况下,就一定会发生部分操作被挂死的情况,如果不KILL这些Session,则这些操作10几个小时都不能执行完,也不报任何错误。但如果正常的话,这些错作5分钟之内绝对完成。
3环境对比:
生产环境 测试环境
操作系统 AIX5300-06 64-bit AIX5200-07 64-bit
ORACLE版本 10.2.0.3.0 64-bit 10.2.0.1.0 64-bit
执行语句 相同 相同
临时表空间 140G 38G
临时表空间INITIAL_EXTENT 1048576 1048576
临时表空间NEXT_EXTENT 1048576 1048576
SGA 6G 2672M
PGA 2422M 886M
PGA管理模式 AUTO AUTO
并行会话数 3 3
临时表空间使用量 28G 200M
执行的存储过程见复件,请各位看看可以如何优化: