问题描述
今天发现了这个问题,分析记录一下问题是这样子的,有一个表记录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代替
解决方法是再增加临时表空间数量或使用临时表空间组达到增加临时表空间大小的目的。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。