• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle SecureFile的功能第1/4页
    SecureFile功能是oracle 11g中对大对象(LOB)存储格式的完全重新设计实现,原来的LOB存储格式现在通称为BASIXFILE,它仍然是默认的存储方法,但是SECURFILE关键字开启了新的存储方法,它允许加密、利用压缩节约空间和数据重复消除。

      初始化参数

      SecureFile功能在初始化参数COMPATIBLE设置我11.0.0.0.0或更高时可用。

      DB_SECUREFILE初始化参数控制数据库对LOB存储格式的默认行为,允许的值有:

      ◆ALWAYS - 在ASSM表空间中的所有LOB对象以SecureFile LOB的格式创建,在非ASSM表空间中的所有LOB对象以BasicFile LOB的格式创建(除非明确地指出要以SecureFile格式创建),在没有指定选项的情况下,BasicFile存储格式选项被忽略,SecureFile默认存储格式选项被使用。

      ◆ FORCE - 所有LOB对象都以SecureFile LOB格式创建,如果是在一个非ASSM表空间中创建LOB,会出现错误,在没有指定选项的情况下,BasicFile存储格式选项被忽略,SecureFile默认存储格式选项被使用。

      ◆PERMITTED - 默认设置,当使用了SECUREFILE关键字时它允许SecureFile LOB存储格式,默认存储方法是BASICFILE。

      ◆NEVER - 不允许创建SecureFile LOB对象。

      ◆IGNORE - 防止创建SecureFile LOB,使用SecureFile存储选项时忽略所有错误。

      这个参数是动态的,因此它可以使用ALTER SYSTEM命令设置。


      SQL> ALTER SYSTEM SET db_securefile = 'FORCE';
      System altered.
      SQL> ALTER SYSTEM SET db_securefile = 'PERMITTED';
      System altered.
      SQL>

      下面的例子假设DB_SECUREFILE初始化参数设置为默认值PERMITTED。

      创建SecureFile LOB

      基础

      SecureFile LOB通过在LOB存储子句后添加SECUREFILE关键字来创建,下面的代码显示创建了两个表,第一个使用的是原来的存储格式,第二个使用的是SecureFile存储格式。


      CREATE TABLE bf_tab (
      id NUMBER,
      clob_data CLOB
      )
      LOB(clob_data) STORE AS BASICFILE;
      INSERT INTO bf_tab VALUES (1, 'My CLOB data');
      COMMIT;
      CREATE TABLE sf_tab (
      id NUMBER,
      clob_data CLOB
      )
      LOB(clob_data) STORE AS SECUREFILE;
      INSERT INTO sf_tab VALUES (1, 'My CLOB data');
      COMMIT;

    LOB重复消除

      SecureFile的DEDUPLICATE选项允许在表或分区一级上的一个LOB内消除重复数据,正如你预料的那样,这个技术与预防重写导致系统开销增大,KEEP_DUPLICATE选项明确地阻止重复消除,下面的例子对比了普通的SecureFile和重复消除SecureFile的空间使用情况。


      CREATE TABLE keep_duplicates_tab (
      id NUMBER,
      clob_data CLOB
      )
      LOB(clob_data) STORE AS SECUREFILE keepdup_lob(
      KEEP_DUPLICATES
      );
      CREATE TABLE deduplicate_tab (
      id NUMBER,
      clob_data CLOB
      )
      LOB(clob_data) STORE AS SECUREFILE dedup_lob (
      DEDUPLICATE
      );
      DECLARE
      l_clob CLOB := RPAD('X', 10000, 'X');
      BEGIN
      FOR i IN 1 .. 1000 LOOP
      INSERT INTO keep_duplicates_tab VALUES (i, l_clob);
      END LOOP;
      COMMIT;
      FOR i IN 1 .. 1000 LOOP
      INSERT INTO deduplicate_tab VALUES (i, l_clob);
      END LOOP;
      COMMIT;
      END;
      /
      EXEC DBMS_STATS.gather_table_stats(USER, 'keep_duplicates_tab');
      EXEC DBMS_STATS.gather_table_stats(USER, 'deduplicate_tab');
      COLUMN segment_name FORMAT A30
      SELECT segment_name, bytes
      FROM user_segments
      WHERE segment_name IN ('KEEPDUP_LOB', 'DEDUP_LOB');
      SEGMENT_NAME BYTES
      ------------------------------ ----------
      DEDUP_LOB 262144
      KEEPDUP_LOB 19267584
      2 rows selected.
      SQL>

      注意重复消除段要小很多,空间节约依赖于LOB段内的重复程度,重复模式可以使用ALTER TABLE命令进行重新设置。

    1234下一页阅读全文
    上一篇:oracle 日期函数集合(集中版本)第1/2页
    下一篇:Hibernate Oracle sequence的使用技巧
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle SecureFile的功能第1/4页 Oracle,SecureFile,的,功能,第,