Home  >  Article  >  Database  >  ORA-01652无法通过256(在表空间temp中)扩展temp段

ORA-01652无法通过256(在表空间temp中)扩展temp段

WBOY
WBOYOriginal
2016-06-07 17:11:471575browse

Oracle9i数据库中某表数据量超过1亿,最近查询该表时WEB页长时间处于空白状态,于是考虑优化该表。优化计划如下:临时表空间主要

【是个老系统】 Oracle9i数据库中某表数据量超过1亿,最近查询该表时WEB页长时间处于空白状态,于是考虑优化该表。优化计划如下:

1.创建临时表

[sql]

  • 2.删除water表数据

    [sql]

  • 3.临时表数据赋予water表
    insert into water select * from tmptable;

    第一步就报错:ORA-01652无法通过256(在表空间temp中)扩展temp段。 此错误告诉我们临时表空间不足。

    临时表空间主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

    当临时表空间不足时,表现为运算速度异常的慢,并且临时表空间迅速增长到最大空间(扩展的极限),,并且一般不会自动清理了。

      如果临时表空间没有设置为自动扩展,则临时表空间不够时事务执行将会报ora-01652无法扩展临时段的错误,当然解决方法也很简单:1、设置临时数据文件自动扩展,或者2、增大临时表空间。

      临时表空间的相关操作:

      查询默认临时表空间:

      SQL> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

      查询临时表空间状态:

      SQL> select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_file

      扩展临时表空间:

      方法一、增大临时文件大小:

      SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize100m;  

      方法二、将临时数据文件设为自动扩展:

      SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;

  • Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn