Tablespaces Full Tablespace Free Space (MB) 表空间 [TEMP] 只有 [0 megabytes ] 空闲空间 用em管理oracle数据库的时候老是出现上面的提示,可是数据库却可以正常运行……在主目录--有问题的表空间中,点击进去看到temp的几个数据文件都差不多满了,可是我在管理--表空间那里看的时候,temp表空间却显示还没有用过,好奇怪啊!!!!

解决方案 »

  1.   

    临时表空间的大小是你在真正要使用的时候才分配的比如说你现在创建一个2G的表空间 
    虽然显示创建成功了
    可是这个时候OS分给这个表空间的实际大小并没有2G你可以试一下创建一个10G的临时表空间和10G的普通表空间
    速度都不太一样的
      

  2.   

    Temporary tablespace是oracle里临时表空间,临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。排序是很耗资源的,Temp表空间满了,关键是优化你的语句,尽量使排序减少才是上策. .......Oracle Temp 临时表空间
    http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4697417.aspx
      

  3.   


    1,增大临时表空间,默认是2G,你可以增大到8G,这样千万级别的查询,都可以满足了。2,会自动放弃的,是oracle自动放弃的,它内部会有一个判断机制,如果觉得可以释放这部分占据的资源了,就会自动释放的。
      

  4.   


    临时表空间确实存在着这个问题,不过也无需过滤,这里的大小是你最大的一次的大小,不知道是bug还是设计上如此,临时表空间会释放,不会收缩。所以一旦一次用的大于这次的了,他就扩张叻。呵呵呵,也有人说这是节省下次扩张时的效率。 不需要顾虑这个,不过如果这个临时表空间由于做了一次大数据量的操作,导致数据文件太大,你想shrink的话。可以自己手工重建的方式来做,很方便的,和一online的做。你可以参考
    http://blog.csdn.net/inthirties/archive/2009/05/29/4221938.aspx
      

  5.   


    Dave这里说的也需要注意, 如果是temporary 异常的迅猛增大,需要检查你的系统,应该存在这一些性能隐患。