oracle 在管理表空间的时候虽然可以进行自动的扩展,但是并不建议用户在使用数据库时让oracle来完成自动扩展。因为,在进行数据库的自动扩展时会占用大量的资源,并且严重影响数据库的使用效率。因此oracle建议,把管理方式设为自动扩展,但是每当需要进行扩展时,由DBA手动扩展一个较大的空间,这样可以避免频繁的自动扩展所带来的性能损失。

解决方案 »

  1.   

    显示一下表空间大小,看看空间够不够?
    select
       df.tablespace_name                          "Tablespace",
       block_size                                  "Block Size",
       (df.totalspace - fs.freespace)              "Used MB",
       fs.freespace                                "Free MB",
       df.totalspace                               "Total MB",
       round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
    from
       dba_tablespaces                               ts,
       (select tablespace_name,
            round(sum(bytes) / 1048576) TotalSpace
          from dba_data_files
          group by tablespace_name)                  df,
       (select tablespace_name,
            round(sum(bytes) / 1048576) FreeSpace
          from dba_free_space
          group by tablespace_name)                  fs
    where
       ts.tablespace_name = fs.tablespace_name
    and
       df.tablespace_name = fs.tablespace_name(+)