ORA-01652: unable to extend temp segment by 8192 in tablespace

张维照 2019-05-31
16
0 0
摘要:解决方法是再增加临时表空间数量或使用临时表空间组达到增加临时表空间大小的目的。

问题描述

今天发现了这个问题,分析记录一下问题是这样子的,有一个表记录7亿,要在表上建索引,临时表空间已分配32G,DB DEFAULT BLOCK SIZE 8K,建索引时报了这个错误

ORA-01652: unable to extend temp segment by 8192 in tablespace INDEXSPACE03


专家解答

看到这个问题很容易判断是disk space不足,或是tablespace space 不足

很好奇这么大的表在没索引前查询该有多久

不光create index or rebuild,alter table move,select /*+oreder */,group order 等内存不足都会用到临时表空间,这个案例是用户所用临时表空间是一个32G的文件,如果你还想再增加或开启datafile无限扩展来解决这个问题,对不起上面有提到block size 8K,那样你只会撞见ora-01144(下篇再说这个)

可以通过dba_temp_files查看当前临时表空间大小

监控临时段信息可以使用v$sort_segment and v$sort_usage

查询使用或剩余空间在dba_free_space是不是记录临时表空间的,可以使用v$temp_space_header代替

解决方法是再增加临时表空间数量或使用临时表空间组达到增加临时表空间大小的目的。


「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
近期活动
全部
相关课程
全部