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命令进行重新设置。

当前1/4页 1234下一页阅读全文

(0)

相关推荐

  • Oracle SecureFile的功能第1/4页

    SecureFile功能是oracle 11g中对大对象(LOB)存储格式的完全重新设计实现,原来的LOB存储格式现在通称为BASIXFILE,它仍然是默认的存储方法,但是SECURFILE关键字开启了新的存储方法,它允许加密.利用压缩节约空间和数据重复消除. 初始化参数 SecureFile功能在初始化参数COMPATIBLE设置我11.0.0.0.0或更高时可用. DB_SECUREFILE初始化参数控制数据库对LOB存储格式的默认行为,允许的值有: ◆ALWAYS - 在ASSM表空间中的

  • java实现的连接oracle/mysql数据库功能简单示例【附oracle+mysql数据库驱动包】

    本文实例讲述了java实现的连接oracle mysql数据库功能.分享给大家供大家参考,具体如下: package com.nuo.test.Connection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DB

  • Oracle DBA常用语句第1/2页

    查看表空间的名称及大小 复制代码 代码如下: SQL>select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 查看表空间物理文件的名称及大小: 复制代码 代码如下: SQL>select tabl

  • ASP.NET环境下为网站增加IP过滤功能第1/2页

    1. 需求分析 通过深入的交流和沟通,确认了该发电厂在企业网站用户访问控制方面的改进要求,大致情况如下: a) 网站基于Asp.Net2.0实现,不允许修改源程序 b) 厂内用户可直接访问整个站点的所有页面,员工不需要身份验证 c) 厂外用户只能访问指定的页面 显而易见,他们就是针对企业网站增加一项IP过滤功能,在厂外用户访问某些敏感页面时将其拒之门外.首先我们需要设置一个IP列表和一个Url列表,前者包含所有厂内IP,后者包含厂外用户可访问的全部Url,并且这两个列表都是可维护的:另外一个核心

  • Java下使用Oracle存储过程(详解)第1/3页

    任何转载,请尊重版权.(作者:iihero on csdn) 一.如何创建java存储过程? 通常有三种方法来创建java存储过程. 1. 使用oracle的sql语句来创建: e.g. 使用create or replace and compile java source named "<name>" as 后边跟上java源程序.要求类的方法必须是public static的,才能用于存储过程. 复制代码 代码如下: SQL> create or replace

  • 一个不错的可以检测多中浏览器的函数和其它功能第1/2页

    //Examine the browser  检测浏览器的函数var userAgent = navigator.userAgent.toLowerCase(); var is_opera  = (userAgent.indexOf('opera') != -1); var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.')); var is_w

  • bootstrap table实现点击翻页功能 可记录上下页选中的行

    bootstrap-table中实现,翻页之后再返回,依然选中的情况,具体内容如下 //var productids = $("body",window.parent.frames[0].document).find('.ptids');//textarea存放数据 var productids = $('textarea'); var merge_order_object= {};//页码+id组成的对象 var jsonObj = {}; var current_page = &q

  • PHP翻页跳转功能实现方法

    我们都知道用php+mysql在web 页实现数据库资料全部显示是非常简单而有趣的,数据库资料很少的情况下页面显示还是让人满意的,但是当数据库资料非常多的情况下,页面的显示情况将会变的非常糟糕,下面就来介绍一下如何实现当前页面数据资料显示数量及如何实现动态的翻转功能. 这里将介绍两种翻页显示功能的实现: 先介绍一下在翻页中用到的数据库语法: mysql_query("select * from table order by id desc"); 这条数据库语句再熟悉不过了,是用来搜索记

  • 终于发现了鼠标关机后仍然发光的原因了与关闭键盘鼠标开机功能的方法第1/2页

    主板的键盘鼠标开机功能是造成鼠标在关机后仍然发光的最普遍的原因--为了实现键盘鼠标开机.网络唤醒等电源管理功能,目前市场上主流的ATX12V电源都会向主板提供+5VSB的供电.也就是说,主流ATX电源在关机后并没有切断所有的电压供给,而是保留了一组+5VSB输出为主板供电,让主板.键盘鼠标等处于待机状态.由于眼下绝大多数主板都支持PS/2键盘鼠标开机,所以在关机后电源仍然为主板的PS/2口供电,让鼠标处于待机状态,这时候最明显的特征就是光电鼠标的扫描灯仍然会发光. 如果大家的主板只支持PS/2键

  • Linux中大内存页Oracle数据库优化的方法

    前言 PC Server发展到今天,在性能方面有着长足的进步.64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Server:在Intel和AMD两大处理器巨头的努力下,x86 CPU在处理能力上不断提升:同时随着制造工艺的发展,在PC Server上能够安装的内存容量也越来越大,现在随处可见数十G内存的PC Server.正是硬件的发展,使得PC Server的处理能力越来越强大,性能越来越高.而在稳定性方面,搭配PCServer和Linux操作系统,同样能够满重要业

随机推荐