建一个表空间的问题
起因如下:需要建立一表空间,从将旧数据库的表迁移过来,旧库的表空间数据文件大约为 500m,于是我书写如下语句:
CREATE TABLESPACE XXXX DATAFILE /XXXXX/XXX.dbf' SIZE 520M;(采用默认的64k和auto方式管理)
结果竟被boss斥为菜鸟语句,于是我要求展示boss的语句,得到如下:
CREATE TABLESPACE XXXX DATAFILE /XXXXX/XXX.dbf' SIZE SIZE 10M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
boss主要对我的表空间设定不满,认为我设定的表空间太大?!!!!! 于是我郁闷之极,本来就需要500m,干嘛一开始非得设成10m呢???? 10m的uniform, 这个是有问题的
的确,使用uniform不会产生碎片
但是对于那些很小的表,申请一次EXTENT就给10m,可能几年都用不完
反而达不到节省磁盘空间的目的 DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0); 应该是128k每次,有NEXT 128K 这个参数,表空间的初始大小是10m。服务器机器是linux的,很一般的pc erver没有使用 sata 的硬盘,也没有raid,就是一台配置比较高的台式机。不过,我把表空间都扩成100m开始的。 如果使用extent management local uniform size xxx,这个uniform size是要看这个tablespace中的segment的大小来决定的。
如果segment都很小,使用很大的uniform size是一种浪费。如果segment很大,使用小的uniform size则会造成效率低下。
页:
[1]