空间足够使用时就不会进行扩展
UNIFORM SIZE就是这个表空间中所有的区间是同样的大小,好处是防止碎片。
数据文件的自动扩展大小有 DBA_DATA_FILES的INCREMENT_BY字段来控制

解决方案 »

  1.   

    本帖最后由 wildwave 于 2014-08-05 11:25:07 编辑
      

  2.   


     --  一般来说 表空间的自动扩展要指定大小,如果没有指定,默认增长 8K ;
    create tablespace TBS_LJB_C
    datafile 'D:\TBS_LJB_B_01.DBF' SIZE 2G
    autoextend on next 10M
    uniform size 64K;-- uniform  是该表空间的对象空间要扩展时,默认分配的大小,如果不指定 前 128 个(也可能是8个,这个记不太清了)是 8K ,128个后,自动变为 64K;
      

  3.   


    这个扩展好像不那么给力,不知道达到百分之几才扩展。
    UNIFORM SIZE 是指统一区的大小,也就是每个区含有多少个块。
    好像ORACLE 有区的数量的限制。 
    请班长解释下
      

  4.   

    每个extent含有多少个块 = UNIFORM SIZE / 块大小
    extent的数量上限取决于Create Table时的storage参数设定,
    如果没写的话,则使用TableSpace的默认设定。
    而oracle分配空间的最小单位是块(block)
    如果是大量数据的插入,我觉得区大小设置的大一些会得到更高的效率。
    因为减少了空间分配的频度。
      

  5.   


    这个扩展好像不那么给力,不知道达到百分之几才扩展。
    UNIFORM SIZE 是指统一区的大小,也就是每个区含有多少个块。
    好像ORACLE 有区的数量的限制。 
    请班长解释下和百分比没关系。当数据库要创建一个新的extent,而数据文件中最大的自由空间不足以容纳这个extent,则自动扩展
    表空间被指定uniform的时候,每个extent的block数会被固定在同样的大小。extent应该没有数量限制吧,我没听说过