ORACLE8新特色_第1页
ORACLE8新特色_第2页
ORACLE8新特色_第3页
ORACLE8新特色_第4页
ORACLE8新特色_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle8数据库系统 改进表的存取性能 索引与数据簇分区选件 分区表与分区索引并行选件 SQL语句并行处理新的数据类型 多媒体数据类型 索引 索引 在数据库应用中 性能主要取决于存取表中数据的速度 索引可以快速找到待定的表记录 索引维护与应用 索引对用户透明当有索引且能提高应用的性能时 Oracle自动使用索引 Oracle自动更新索引以使其与表同步 索引类型B树索引 系统自动为主码和唯一完整性约束建立 位图索引索引表 分区索引 反向键值索引 SMITHALLENWARDJONES MARTINBLAKECLARKSCOTTKING TURNERADAMSJAMESFORDMILLER B树索引createindex索引名on表名 列名 ADAMSALLEN BLAKECLARKFORD JAMESJONES KINGMARTIN MILLERSCOTTSMITH TURNERWARD MILLERTURNER BLAKEJAMES KING ROWID 对于索引列的每一个可能的值 都有独立的位图项 在位图项中的每一位代表一个可能的ROWID 为1意味着该行包含关键值 例如 LOC列 3种取值 北京 010011 天津 100000 上海 001100 第二个记录第一个记录位图函数可以将位的位置转换为实际的ROWID 通过位图索引的合并简化查询条件 从而过滤被访问的数据集合 位图索引 d01 合资 d02 合资 d03 合资 d04 外企 d05 国企 d06 合资 dno type 天津 北京 上海 上海 北京 北京 loc selectdnofromdepwheretype 合资 andlocin 北京 上海 合资北京上海10001101d021011d030AND0OR1 001001101d06 位图索引的例子 位图索引 建立位图索引 createbitmapindexdep indexondep type createbitmapindexdep indexondep doc 位图索引适用于列的值取值不多的情况 索引列含有越多的值 位图项就越多 需要存储索引的空间也越大 由于Oracle必须展开一个位图索引的方式 所以不适于经常插入或更新数据的应用 位图索引典型地用于决策系统与数据仓库应用中查询数据 簇 聚集 索引 当cluster建立后 必须建立簇索引后 被聚集的表才能访问 系统不会自动为簇建索引 例 createclusertdep emp depnochar 3 createtabledep dno dname clusterdep emp dno createtableemp emp dno clusterdep emp dno createindexdep emp idxonclusterdep emp 簇 聚集 索引 簇索引表的存储e01王山男d01佳月公司8200e02张丽女d01e10孙军男d02运通公司2034d03安合物业6800来自emp来自depclusterkey 分区选件 分区选件 分区的原因表和索引迅速膨胀数据仓库和决策支持的需要什么是分区大的表或索引可以拆分为小的易于管理的数据片断 例如将销售表按销售日期拆分成一系列数据片断其中每一个片断称为一个分区 partition 被分区的表称为分区表 数据仓库的概念 数据仓库就是面向主题的 集成的 稳定的 不同时间的数据集合 用以支持经营管理中的决策制定过程 主题是一个在较高层次将数据归类的标准 每一个主题对应一个宏观的分析领域数据仓库的集成特性是指在数据进入数据仓库之前 必须经过数据加工和集成 统一原始数据中的矛盾之处 将原始数据结构做一个从面向应用向面向主题的转变 数据仓库的稳定性是指数据仓库反映的是历史数据的内容 而不是日常事务处理产生的数据 进入数据仓库后是极少或根本不修改的 数据仓库的概念 数据仓库最根本的特点是物理地存放数据 这些数据并不是最新的 专有的 而是来源于其它数据库的 数据仓库的建立并不是要取代数据库 它要建立在一个较全面和完善的信息应用的基础上 用于支持高层决策分析 而事务处理数据库在企业的信息环境中承担的是日常操作性的的任务 数据仓库是数据库技术的一种新的应用 而且到目前为止 数据仓库还是用数据库管理系统来管理其中的数据 分区 只有表和索引可以分区 分区对于应用人员和用户是透明的 分区可以控制数据的存储地点 将数据分散存储在多个磁盘上 将经常使用的数据放在快速的磁盘上 分区可以有不同的物理属性 分区可以有不同的存储参数 tablespace pctfree pctused 等等 分区表或索引可以跨表空间存储 分区不可以 同一模式对象的所有分区必须具有相同的逻辑属性 相同的列 数据类型 约束 分区的作用 增加了数据的可用性不同的分区可以跨表空间存储 可以进行分区级的备份和恢复 不同的分区可以跨表空间存储 降低了磁盘损坏带来的数据不可用性 不可用的分区不会影响到对其它分区的查询和维护提高了系统性能服务器可以进行智能的分区检测跳过与查询无关的分区访问跳过不在线的分区在物理设备上负载均衡将数据分散存储在多个磁盘上 实现并行存取 分区关键字 分区关键字决定了划分分区的依据只能是标准数据类型 Number Date Character VARCHAR2 CHAR 可以是多至16个的列的联合对关键字的修改不能导致记录在分区之间的移动分区的数据范围LESSTHAN子句指定每个分区的上限值 除第一个分区外 每一个分区都有一个隐含的下限值 即前一个分区的上限值 最后一个分区的上限值可以设定为MAXVALUE必须按照升序排列来声明分区 建立分区表例1 CREATETABLEsales97 acct nonumber 5 product idnumber 12 qtynumber 8 sales datedate PARTITIONBYRANGE sales date PARTITIONp1VALUESLESSTHAN to date 01 4月 1997 dd mon yyyy TABLESPACEp1 space PARTITIONp2VALUESLESSTHAN to date 01 7月 1997 dd mon yyyy TABLESPACEp2 space PARTITIONp3VALUESLESSTHAN to date 01 10月 1997 dd mon yyyy TABLESPACEp3 space PARTITIONp4VALUESLESSTHAN MAXVALUE 建立分区表例2 CREATETABLEstu score stu numNUMBER 5 scorenumbernotnull test yearnumbernotnull test monthnumbernotnull test daynumbernotnull PARTITIONBYRANGE test year test month test day PARTITIONscore q1VALUESLESSTHAN 1997 07 01 TABLESPACEeducation1 PARTITIONscore q2VALUESLESSTHAN 1998 02 01 TABLESPACEeducation2 查看分区情况 查分区表分区数selectpartition countfromuser part tableswheretable name SALES97 PARTITION COUNT 4查分区表分区划分情况情况selectpartition name tablespace name partition position high valuefromuser tab partitionswheretable name STU SCORE SCORE Q1EDUCATION111997 07 01SCORE Q2EDUCACION221998 02 01 建立分区注意事项 设置分区的界限VALUESLESSTHAN定义了分区的上界VALUESLESSTHAN必须取值Number Character DateMAXVALUE定义分区的最上界任何合法的存储子句均可用于分区 tablespace pctfree 没有为单独的分区设置存储子句时 使用基表的存储子句在分区表中不能包含LONG类型的列 系统为每一分区设置一个隐含的CHECK约束 分区的最高限制是MAXVALUE时除外 聚集表不能分区 分区表的访问 分区对表名的扩展 模式名 表名 PARTITION 分区名 例 SELECT FROMsales97WHEREqty 1000ANDsales dateBETWEEN 01 4月 97 AND 30 6月 97 指定分区SELECT FROMsales97PARTITION p2 WHEREqty 1000 INSERTINTOsales97PARTITION p4 SELECT FROMlastest data 注意 分区表名的不兼容性 分区表的访问 分区值的检查insertintostu scorevalues 98007 50 1998 2 1 错误位于第1行 ORA 14400 插入的分区键超出最高的合法分区键 使用别名select fromstu scorepartition score q1 q1whereq1 score 85建立视图createviewsco q1asselect fromstu scorepartition score q1 分区索引 一般索引 非分区索引 CREATEINDEXsales97 idxONsales97 sales date 分区索引 索引分区只有当索引本身足够大且适于分区时 索引分区才是有意义的 索引分区可提高可用性 提供并行索引扫描 提高性能 选择分区索引的主列 索引列 与选择非分区索引主列没有区别 根据where子句的应用 分区索引策略 一旦决定为表创建一个分区索引 必须决定如何组织 划分该索引的分区 两种选择 全局分区索引 GLOBAL 按自定的索引关键字来分区 对等分区索引 也称局部索引 LOCAL 创建与分区表的各分区一一对应的索引分区 GLOBAL 分区表 分区表 非分区表 LOCAL 分区索引 对等分区索引 非分区索引 对等分区对象 定义 下列属性完全一样的两个模式对象有相同的分区关键字相同数量的分区相同的分区界限使用对等分区的优点 对等分区对象是主 细表 全部对应的主细记录在相应的数据分区中 可很快完成两个表的连接 在这种情况下 磁盘存取的减少类似于使用数据簇 聚集 来 予连接 主细表 对等分区的对象是表和索引 当查询时 特定索引分区中的全部键值只引用相应表分区中的记录 当一个分区不可用时只有相应的分区索引不可用 不影响其他分区及分区索引 因此提高数据可用性 当更新一个表分区的数据时 只须调整相应的分区索引 分区表与对等分区索引 建分区表CREATETABLEsales97 acct noNUMBER 5 product idNUMBER 12 qtyNUMBER 8 sales dateDATE PARTITIONBYRANGE sales date PARTITIONq1VALUESLESSTHAN PARTITIONq2VALUESLESSTHAN PARTITIONq3VALUESLESSTHAN PARTITIONq4VALUESLESSTHAN 建分区索引与对应分区表构成对等分区对象 使用LOCAL属性CREATEINDEXsales idxONsales97 sales date LOCAL PARTITIONindex q1 PARTITIONindex q2 PARTITIONindex q3 PARTITIONindex q4 全局分区索引 与分区表不构成对等分区对象 按索引码分区 而不是按表的分区关键字使用GLOBAL全局分区索引能够包含相应表全部分区的键值 在OLTP环境下提供比分区索引更好的性能 CREATEINDEXproduct idxONsales97 product id GLOBALPARTITIONBYRANGE product id PARTITIONpidx1VALUESLESSTHAN 100 tablespaceusers PARTITIONpidx2VALUESLESSTHAN 200 tablespacestudents PARTITIONpidx3VALUESLESSTHAN MAXVALUE 分区索引例 对等分区索引 local createindexstu idx 97 7 198 2 1 onstu score test year test month test day local partitionindex q1 partitionindex q2 全局分区索引 global createindexstu g idxonstu score stu num globalpartitionbyrange stu num partitionpidx1valueslessthan 95000 tablespaceusers partitionpidx2valueslessthan 96000 tablespacestudents partitionpidx3valueslessthan maxvalue 查看分区索引 selectpartition name high value statusfromuser ind partitionswhereindex name STU IDX INDEX Q11997 07 01USABLEINDEX Q21998 02 01USABLEselectpartition name high value statusfromuser ind partitionswhereindex name STU G IDX PIDX195000USABLEPIDX296000USABLEPIDX3MAXVALUEUSABLE 分区表的管理 分区可独立管理 分区操作仅在单一分区上发生作用 分区级的操作 altertable Add分区altertable Drop分区 modify分区 Move分区 Split分区 Rename分区 Exchange分区 Imported Exported Load分区数据 分区索引的管理 分区索引的管理类似于分区表的管理alterindexdroppartition 只对global索引 alterindexsplitpartition 只对global索引 alterindexrenamepartitionalterindexrebuildpartitionalterindexmodifypartitionalterindexunusablealterindexstu idxrebuildpartitionindex q1 alterindexstu g idxrebuildpartitionpidx1 分区表的维护 增加分区 ALTERTABLEstu scoreADDPARTITIONscore q3VALUESLESSTHAN 1998 07 01 TABLESPACEstudents 常用来维护历史数据 用来增加另外时间段的数据 用于在分区表的高端增加分区如果增加的分区在分区表的中间 或最后分区边界是MAXVALUE时在高端增加分区 要用其他办法 拆分分区 如果分区表有对等分区索引 则分区索引会随之增加 分区索引名用表分区名 分区索引的自动调整 selectpartition name high value statusfromuser ind partitionswhereindex name STU IDX INDEX Q11997 07 01USABLEINDEX Q21998 02 01USABLESCORE Q31998 07 01USABLE 改名之前 索引改名 alterindexstu idxrenamepartitionscore q3toindex q3 select whereindex name STU G IDX PIDX195000USABLEPIDX296000USABLE没有变化PIDX3MAXVALUEUSABLE 分区表的维护 删除分区 ALTERTABLEstu scoreDROPPARTITIONscore q3 用于删除历史数据不想删除分区中的数据时 应首先将分区数据合并到邻近分区相应分区索引将被删除全局索引变为不可用 需要重构 删除分区 索引 selectpartition name high value statusfromuser ind partitionswhereindex name STU IDX INDEX Q11997 07 01USABLEINDEX Q21998 02 01USABLEselectpartition name high value statusfromuser ind partitionswhereindex name STU G IDX PIDX195000UNUSABLEPIDX296000UNUSABLEPIDX3MAXVALUEUNUSABLE 分区表操作 删除分区记录 ALTERTABLEstu scoreTRUNCATEPARTITIONscore q3 也可以使用SQL语句中的Delete删除分区中的数据 但会比较慢 表中数据清空以后 对等分区索引会自动变化 非对等分区索引和一般索引变为不可用状态 SCORE Q2STUDENTS1998 02 01表分区SCORE Q3STUDENTS1998 07 01SCORE Q1USERS1997 07 01 INDEX Q21998 02 01USABLE索引分区INDEX Q11997 07 01USABLEINDEX Q31998 07 01USABLE PIDX195000UNUSABLE全局分区PIDX296000UNUSABLEPIDX3MAXVALUEUNUSABLE 索引不可用 可能使索引不可用 IU 的操作清除记录的分区操作 TRUNCATEPARTITION 跳过局部索引 LOCAL 的Import对数据库的直接SQL LOADER改变ROWID的分区操作 MOVE SPLITPARTITION 如果索引分区被标记为IU 用户发出使用该索引分区的SELECT或DML语句时 将得到错误提示 这时需要重建索引 select fromstu scorewherestu num 950001错误位于第1行 ORA 01502 索引 WXY STU G IDX 或这类索引的分区是在不可使用的状态 重建索引 alterindexrebuildpartition可以为local或global分区索引重建某个分区 例alterindexstu g idxrebuildpartitionpidx1 alterindexstu g idxrebuildpartitionpidx2 alterindexstu g idxrebuildpartitionpidx3 重建索引还可以改变表空间等其他存储属性 alterindexstu g idxrebuildpartitionpidx1tablespacestudent2 分区表的维护 修改分区 修改分区的物理属性altertablestu scoremodifypartitionscore q1storage maxextents50 置分区表对应的局部索引为不可用状态 altertablestu scoremodifypartitionscore q1unusablelocalindexes 用于插入和转入数据 为使局部索引可用 必须重建索引分区重建已被标记为iu的局部分区索引altertablestu scoremodifypartitionscore q1rebuildunusablelocalindexes 分区表的操作 重命名分区 修改分区名ALTERTABLEstu scoreRENAMEPARTITIONscore q3toscore qq3 附 修改表名ALTERTABLEstu scoreRENAMEtostudent score 分区表的操作 移动分区 ALTERTABLEMOVEPARTITION移动表分区到另外一个数据段上 新的数据段产生 旧的数据段删除 可在原表空间 也可移到其他表空间 用于将分区移动到其它设备上 或用于减少分区碎片 相应的分区索引和其他类型的索引都应该重建 altertablestu scoremovepartitionscore q1 分区表的操作 拆分分区 ALTERTABLESPLITPARTITION将分区在分区范围内拆分为两个分区创建了两个分区 每一个新分区有单独的数据段 新的物理属性 旧分区被删除相应的局部索引也被SPLIT 并被标记为IU全局索引和非分区索引被标记为IUaltertablestu scoresplitpartitionscore q2at 1997 10 1 into partitionscore q21 partitionscore q22 分区名分区上限值分区索引SCORE Q11997 07 01INDEX Q1SCORE Q211997 10 01SCORE Q21SCORE Q221998 02 01SCORE Q22SCORE Q31998 07 01INDEX Q3 分区表的操作 交换数据 ALTERTABLEEXCHANGEPARTITION用于非分区表和分区表的一个分区之间的双向交换 可以交换数据和索引段物理属性不变可以带withvalidation或withoutvalidation 当数据不在分区范围时 WITHVALIDATION将报错 WITHOUTVALIDATION假定数据均在分区范围 例 altertablestu scoreexchangepartitionscore q1withtablestu score97withoutvalidation 分区表操作 合并分区 使用IMPORT EXPORT可以将邻近分区合并为一个分区使用Export从低层分区取出要合并的数据使用SQL语句DROP已经Exported的分区使用Import将取出的数据合并到邻近分区使用SQL语句实现分区的合并insertintostu tempselect fromstu scorepartition score q1 altertablestu scoredroppartitionscore q1 insertintostu scoreselect fromstu temp SQL语句的并行处理 什么是Oracle的并行 并行服务器选项允许多个数据库实例运行在一个松散耦合多处理器系统 或集群系统 的不同接点上 同时存取一个Oracle物理数据库 从而为用户提供了多种数据库存取路径 并行 容错并行SQL语句处理将一个SQL语句 如查询 分为几个子任务 然后启动多个进程并行处理子任务 并将结果快速返回给用户 利用多进程 多CPU 缩短语句执行时间 SQL语句的并行执行不需要并行服务器选项 串行处理 扫描emp表 扫描dep表 连接 排序 CPU CPU CPU CPU 查询结果 Selectename age dnamefromemp depwhereemp dno dep dnoorderbyage 单个进程执行一条SQL语句 SQL语句的并行处理 Selectename age dnamefromemp depwhereemp dno dep dnoorderbyage 扫描emp表 扫描dep表 连接 排序 CPU CPU CPU CPU 查询结果 多个进程执行一条SQL语句 并行处理的条件 软件环境 并行SQL处理系统 一个并行的SQL处理系统接受一个SQL请求 智能地将它分解为几个较小的可以并行的子任务 然后使用所有空闲的CPU并行处理这些子任务 以达到缩短总处理时间的目的 Oracle服务器使用一种特殊的操作系统进程结构 并行处理对数据库的某些请求 硬件 多CPU系统 并行SQL语句的硬件环境 SMP symmetricmultiprocessor 对称多处理机 CPU CPU CPU 内存 可以被并行处理的操作 select 扫描表 update deleteinsert select连接操作 join 聚合操作 统计 notin groupby orderbyselectdistinct unioncreatetable asselectcreateindex rebuildindexsplitpartiton movepartition rebuildindexpartition从SQL语句中调用PL SQL函数 并行机制 协调进程 一个协调进程 coordinator 调度多个从属进程 slaveprocesses 并行执行SQL语句 Select fromemp 串行进程 Emp表 Select fromemp 协调进程 Emp表 并行进程 并行机制 并行优化器当用户执行SQL语句时 优化器确定是否以并行方式执行语句 以及每一个操作的并行度是多少 并行进程池在启动一个数据库实例后 Oracle建立一个并行进程池 当开始并行操作时 协调进程从并行池中获得并行进程资源 并把它们分配给有关操作 实行并行步骤SQL语句的前台进程变为并行协调进程 协调进程根据并行度从并行池中获得所需数量的从属并行进程 系统将SQL语句化为一系列的操作 每个操作都尽可能地并行执行 当语句处理完毕 协调进程返回结果给用户进程 并释放从属并行进程 回进程池 并行方法 块并行按ROWID的范围并行适用于查询 包括select语句和在DML和DCL中的子查询 适用于movesplit分区 rebuild分区 适用于分区 非分区的表和索引 分区并行适用于对分区表和分区索引的操作 从属进程并行适用于往非分区表中插入数据 插入记录时 将记录分摊到各个从属进程分别插入因新记录还没有rowid 所以无法块并行 并行计划 优化器确定了一条语句的执行计划协调器决定计划中的每一个操作的并行方法块并行 分区并行 优化器确定执行计划中操作的执行顺序 语句的数据流操作之间的并行需要其他操作输出的操作称为父操作父操作 子操作 消费者 生产者两种并行一个操作的并行 intro operation并行数据流中不同操作之间的并行 inter operation并行 并行模式 Select fromemporderbyename 无索引 如果并行度为4 意味着对于任何给定的操作 可以激活4个并行进程 实际上8个进程执行该语句 Introinterintro 用户进程 协调进程 A G H M N S T Z scan scan scan scan Emp表 并行度指定 为执行一个单一操作而启动的进程数叫并行度语句级指定PARALLEL子句PARALLEL DEGREE4 语句提示hint parallel emp 3 表和索引级在建表和索引的语句中指定 隐含指定基于CPU数 存储表的设备 磁盘 数 分区数等 并行度确定 并行协调程序决定并行度的依据 检查在SQL语句中的hint或parallel子句 检查在表和索引定义语句中的指定 使用隐含并行度指定 一旦确定并行度 它将成为有关操作的并行度 即协调进程为一操作申请的并行进程数 而实际进程数还取决于进程池中的可用资源 并行子句语法 Parallel子句语法 在DDL语句中使用 用于createtable createindex createclusteraltertable alterindex rebuild alterclusteralterdatabase recoverhint指定 在DML语句中使用 parallel 表名 并行度 并行执行SQL语句例 以并行度4同时执行扫描和更新update parallel emp 4 empsetsal sal 100whereage 50 以并行度3执行插入语句insert parallel emp2 3 intoemp2select parallel emp1 5 fromemp1 以并行度4执行删除语句delete parallel tab1 4 fromtab1wherecol1 50andcol1 10000 并行执行SQL语句例 在DDL语句中指定parallel子句 并行度为5 该命令执行时使用10个进程 5个用于扫描emp1表 5个用于向emp2表中添加数据 CREATETABLEemp2PARALLEL DEGREE5 ASSELECT FROMemp1WHEREdeptno 10 下面的命令使用10个进程构造索引 5个用于扫描EMP表 另外5个用于向EMP IDX中添加数据CREATEINDEXemp idxONemp ename PARALLEL DEGREE5 并行度确定例 在DML语句 查询 中指定并行度2select parallel emp22 fromemp2whereage 50 采用表定义隐含并行度值 5 select fromemp2whereage 50 采用系统隐含值select fromemp1whereage 50 PARALLEL DEGREE1INSTANCES1 等同于NOPARALLELdegree单实例中的并行instances实例间的并行 没有并行服务器时忽略 两种并行度 分别在并行服务器的5个实例上各启动5个恢复进程 共25个进程 ALTERDATABASERECOVERTABLESPACEbinkyPARALLEL DEGREE5INSTANCES5 改变EMP1表的预定义并行度ALTERTABLEemp1PARALLEL DEGREE2 并行DML模式 为使并行DML生效 会话需要PARALLELDML模式 特殊的锁 空间分配等 ALTERSESSIONENABLEPARALLELDML 一个事物可以包含多个修改不同表的并行DML 但对于某个表作了并行DML修改后 不能在此事务中再对该表作任何形式的访问 查询 包括DML语句中的子查询 和DDL语句不受此影响 其他约束在并行DML操作中不支持触发器对自身的引用和连带删除必须被禁止并行插入删除和修改不支持包含对象类型的表不支持聚集表复制功能中不支持并行DML 并行工作的平衡 适当指定并行度可以优化性能 平衡并行操作例 emp表有10个分区并行度 1并行度 5并行度 10并行度 9并行度 4处理时间不等于分区数 进程数 大型对象 新数据类型支持多媒体数据 大型对象 多媒体数据类型 三种类型的LOB二进制LOB BLOB 无结构的二进制大对象字符LOB CLOB 字符数据 不支持变宽字符集 二进制文件 BFILE 最大长度由OS定对于LOB类型数据 表的列值为一定位器值 标明数据存放的位置 BLOB和CLOB 指向一个分开的由数据库分配的保存LOB的位置 BFILE 指向一个外部文件 LOB数据没有必要与一般数据存放在一起 仅在需要时才访问它们 LOB可以是对象类型的属性 每行只能有一个LONGLONG在线存储LONG 2GLONG不能复制LONG不能记录日志OCI可以处理该类型数据 varchar24k字符 比较 每行可以包含多个LOBLOB可以离线存储LOB 4GLOB可以复制LOB的操作可以记录在日志中 LOB与LONG RAW 的比较 多媒体数据类型应用 LOB例 CREATETABLEperson pnameVARCHAR2 10 resumeCLOB photoBLOB homepageBFILE LOB resume photo STOREAS TABLESPACEresume spaceSTORAGE INITIAL5mNEXT1mPCTINCREASE0 对LOB数据所使用的空间另行指定存储参数LOB子句 多媒体数据类型 LOB设置 CHUNK的尺寸决定访问LOB数据时一次处理数据块的个数如果LOB以大数据量读写时 将CHUNK设大如果LOB以小数据量读写时 将CHUNK设小如果LOB被经常访问 设置CACHE 缺省为NOCACHECREATETABLEperson tab LOB resume picture STOREAS TABLESPACElob tablespaceCHUNK4NOCACHE 初始化LOB数据 Insertintopersonvalues 张大年 empty clob empty blob bfilename person dir person html 函数empty clob 和empty blob 返回一个空的LOB定位器值 与空值不一样 函数bfilename 逻辑目录名 文件名 返回一个bfile定位器值 它与一个位于服务器文件系统中的物理文件相连 建立逻辑目录名 数据库对象 createdirectoryperson diras user person BFILE与逻辑目录 使用BFILE将LOB存储在数据库外BFILE只读 只能在ORACLE外创建和更新通过数据库对象DIRECTORY定位外部文件用户对于DIRECTORY的访问需经过授权 不是在某个模式下建目录对象 创建DIRECTORY对象时 不检查实际目录 文件是否存在 应先创建相应的物理路径不要将DIRECTORY设置在ORACLE数据文件目录ORACLE必须对该目录有读权限 严格控制CREATE或DROPANYDIRECTORY权限的授予 BFILE与逻辑目录 以管理员帐号执行下列语句CREATEDIRECTORYmydirAS home image GRANTREADONDIRECTORYmydirtouesr01 以user01帐号执行下列语句CREATETABLEmytable idNUMBER image colBFILE INSERTINTOmytableVALUES 139 filename mydir world gif 复制LOB数据 在SQL语句中复制LOB数据Insertintopersonselect 王中里 photo homepagefrompersonwherepname 张大年 在SQL Plus平台上只能对一般数据I OSQL select fromperson 列或属性类型无法通过SQL Plus显示 更新LOB数据 自动加行锁不适用于LOB数据 要读加锁selectpnamefrompersonwherepname 张大年 forupdate updatepersonsetresume 新简历 wherepname 张大年 updatepersonsethomepage bfilename person dir zhang html wherepname 张大年 排他锁仅在更新内部存储的LOB数据时必要 处理LOB数据的接口 ORACLE提供大量的操纵LOB数据的接口DBMS LOB包 包含一系列函数和过程OCI也包含大量API检查LOB数据的函数和过程COM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论