Oracle10g下创建表空间的问题我们的DB要从oracle8i升级到oracle10g,不是简单的升级,而是要重新作数据库。
以前的脚本都是这个样子的,如下:
CREATE TABLESPACE BKNDAT01 DATAFILE 'E:\hs01\bkdat\bkendat01.ora' SIZE 1024M
DEFAULT STORAGE ( INITIAL 256K NEXT 256K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 );查了一下资料,才知道在8i时表空间都是字典管理的,现在可以设为本地管理。说本地管理好处很多,可以减少对字典的争用,可以减少碎片...具体见相关文章
其中有人这样说: 
  不要再使用DMT,只使用LMT.理由如下
  1)LMT不产生碎片.DMT中容易碰到的碎片问题在LMT中不会发生
  2)一个对象有多少个区没有关系,不必特殊关注具有许多个区的对象.过去,可能有理由关注他们,但并不是因为查询性能而是因为DDL(如drop或truncate)的性能
  3)LMT完全没有递归SQL的开销
  4)不需要判断最佳的INITIAL,NEXT,PCTINCREASE和maxextents是什么.这些存储参数是过去的事情,应该从你的create语句中去掉storage字句. 尤其是第4条,1,所以我考虑将脚本修改如下:
CREATE TABLESPACE BKNDAT01 DATAFILE 'E:\hs01\bkdat\bkendat01.ora' SIZE 1024M
DEFAULT STORAGE ( INITIAL 256K NEXT 256K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 );
create tablespace BKNDAT01 
datafile 'E:\hs01\bkdat\bkendat01.ora' size 1024M 
AutoExtend off --原为:AutoExtend On Next 10M Maxsize 2048M 
extent management local 
segment space management auto;大家看看这样可以么,有没有什么建议?谢谢了!

解决方案 »

  1.   

    不好意思,忘记了删除了,应该是这样的:1,所以我考虑将脚本修改如下: 
    create tablespace BKNDAT01 
    datafile 'E:\hs01\bkdat\bkendat01.ora' size 1024M 
    AutoExtend off --原为:AutoExtend On Next 10M Maxsize 2048M 
    extent management local 
    segment space management auto; 大家看看这样可以么,有没有什么建议? 谢谢了!
      

  2.   

    语法上没有什么问题,可以. 另外autoextend on也是可以的.
      

  3.   

    如果是领导要求的那就没什么好说的了,加上autoextend off就可以了.