securefile是大型对象(LOB)Oracle 11g的存储格式完全重新设计,原来的现在被称为basixfile LOB存储格式,它仍然保存在默认的方法,但securfile关键词打开了一个新的存储方式,它允许压缩加密的使用,节省空间,消除重复的数据。

初始化参数

的securefile功能可以在初始化参数兼容设置在我的11.0.0.0.0或更高。

的db_securefile初始化参数控制在LOB存储格式数据库的默认行为。允许值是:

在所有LOB对象ASSM的表总是在空间的营造securefile LOB的格式,在空间中的所有LOB对象非ASSM表创建一个基本档案LOB格式(除非明确指出要在securefile格式创建的),在指定的选项基本档案存储格式选项下省略securefile,默认存储格式选项的使用。

力的所有LOB对象创建securefile LOB的格式,如果是在一个非ASSM表空间创建LOB,会有误差,在指定的选项基本档案存储格式选项下没有被省略,默认选项是使用securefile存储格式。

允许的默认设置,当securefile关键词用于使securefile LOB存储格式,默认的存储方法是基本档案。

永远不允许securefile LOB对象的创建。

忽略- securefile LOB创建防止所有的错误,忽略securefile存储选项的使用。

此参数是动态的,因此可以使用更改系统命令来设置它。






SQL> ALTER SYSTEM SET db_securefile ='FORCE';
系统的改变。
SQL> ALTER SYSTEM SET db_securefile ='PERMITTED';
系统的改变。
SQL >

下面的示例假定db_securefile初始化参数被设置为默认值,允许。

创建securefile高球

基础

securefile LOB的LOB存储子句后加入securefile关键词创建。下面的代码显示了这两个表的创建,一是原有的存储格式,其他二是securefile存储格式。






创建表bf_tab(
身份证号码,
clob_data CLOB
)
LOB(clob_data)商店基本档案;
插入bf_tab值(1,我的CLOB数据);
承诺;
创建表sf_tab(
身份证号码,
clob_data CLOB
)
LOB(clob_data)店securefile;
插入sf_tab值(1,我的CLOB数据);
承诺;

把重复的消除

的securefile重复数据删除选项允许在高球水平在表或分区重复数据消除,如你所料,系统增加改写成本防治技术和事业,keep_duplicate选项明确预防消除重复、对比的例子下面的普通securefile和securefile空间使用重复消除。






创建表keep_duplicates_tab(
身份证号码,
clob_data CLOB
)
LOB(clob_data)店securefile keepdup_lob(
keep_duplicates
);
创建表deduplicate_tab(
身份证号码,
clob_data CLOB
)
LOB(clob_data)店securefile dedup_lob(
重复数据删除
);
声明
l_clob CLOB:= RAPD(x,10000,x);
开始
我在1…1000环路
插入keep_duplicates_tab值(I,l_clob);
结束循环;
承诺;
我在1…1000环路
插入deduplicate_tab值(I,l_clob);
结束循环;
承诺;
结束;
/
执行dbms_stats.gather_table_stats(用户,'keep_duplicates_tab);
执行dbms_stats.gather_table_stats(用户,'deduplicate_tab);
柱segment_name格式A30
选择segment_name,字节
从user_segments
在那里segment_name('keepdup_lob ','dedup_lob);
segment_name字节
----------------------------------------
dedup_lob 262144
keepdup_lob 19267584
选择2行。
SQL >

注意,重复消除部分要小得多。节省空间取决于高优先级段的重复性。重复的模式可以被重置使用表命令。