欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Oracle8数据库系统.ppt

    • 资源ID:5442025       资源大小:333.49KB        全文页数:83页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Oracle8数据库系统.ppt

    Oracle8 数据库系统,改进表的存取性能-索引与数据簇分区选件-分区表与分区索引并行选件-SQL语句并行处理新的数据类型(多媒体数据类型),索引,索引,在数据库应用中,性能主要取决于存取表中数据的速度。索引可以快速找到待定的表记录。索引维护与应用:索引对用户透明当有索引且能提高应用的性能时,Oracle自动使用索引。Oracle自动更新索引以使其与表同步。索引类型B树索引(系统自动为主码和唯一完整性约束建立)位图索引索引表,分区索引,反向键值索引。,SMITHALLENWARDJONES,MARTINBLAKECLARKSCOTTKING,TURNERADAMSJAMESFORDMILLER,B树索引create index 索引名 on 表名(列名),ADAMSALLEN,BLAKECLARKFORD,JAMESJONES,KINGMARTIN,MILLERSCOTTSMITH,TURNERWARD,MILLERTURNER,BLAKEJAMES,KING,ROWID,对于索引列的每一个可能的值,都有独立的位图项。在位图项中的每一位代表一个 可能的ROWID,为1意味着 该行包含关键值。例如:LOC列(3种取值)北京(0 1 0 0 1 1)天津(1 0 0 0 0 0)上海(0 0 1 1 0 0)第二个记录 第一个记录位图函数可以将位的位置转换为实际的ROWID。通过位图索引的合并简化查询条件,从而过滤被访问的数据集合。,位图索引,d01,合资,d02,合资,d03,合资,d04,外企,d05,国企,d06,合资,dno,type,天津,北京,上海,上海,北京,北京,loc,select dno from depwhere type=合资 and loc in(北京,上海);合资 北京 上海1 0 0 0 1 1 0 1d0210 1 1d030 AND 0 OR 1=00 1 0 01 1 0 1d06,位图索引的例子,位图索引,建立位图索引;create bitmap index dep_indexon dep(type);create bitmap index dep_indexon dep(doc);位图索引适用于列的值取值不多的情况、索引列含有越多的值,位图项就越多,需要存储索引的空间也越大。由于Oracle必须展开一个位图索引的方式,所以不适于经常插入或更新数据的应用。位图索引典型地用于决策系统与数据仓库应用中查询数据。,簇(聚集)索引,当cluster建立后,必须建立簇索引后,被聚集 的表才能访问。系统不会自动为簇建索引。例:create clusert dep_emp(depno char(3);create table dep(dno.,dname.,)cluster dep_emp(dno);create table emp(emp,dno.)cluster dep_emp(dno);create index dep_emp_idx on cluster dep_emp;,簇(聚集)索引,簇索引表的存储e01 王山 男 d01 佳月公司 8200e02 张丽 女 d01 e10 孙军 男 d02 运通公司 2034 d03 安合物业 6800 来自emp 来自dep cluster key,分区选件,分区选件,分区的原因表和索引迅速膨胀数据仓库和决策支持的需要什么是分区大的表或索引可以拆分为小的易于管理的数据片断,例如将销售表按销售日期拆分成一系列数据片断其中每一个片断称为一个分区(partition)被分区的表称为分区表。,数据仓库的概念,数据仓库就是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中的决策制定过程。主题是一个在较高层次将数据归类的标准,每一个主题对应一个宏观的分析领域数据仓库的集成特性是指在数据进入数据仓库之前,必须经过数据加工和集成,统一原始数据中的矛盾之处,将原始数据结构做一个从面向应用向面向主题的转变。数据仓库的稳定性是指数据仓库反映的是历史数据的内容,而不是日常事务处理产生的数据,进入数据仓库后是极少或根本不修改的,数据仓库的概念,数据仓库最根本的特点是物理地存放数据。这些数据并不是最新的、专有的,而是来源于其它数据库的。数据仓库的建立并不是要取代数据库,它要建立在一个较全面和完善的信息应用的基础上,用于支持高层决策分析。而事务处理数据库在企业的信息环境中承担的是日常操作性的的任务。数据仓库是数据库技术的一种新的应用,而且到目前为止,数据仓库还是用数据库管理系统来管理其中的数据。,分区,只有表和索引可以分区。分区对于应用人员和用户是透明的。分区可以控制数据的存储地点:将数据分散存储在多个磁盘上。将经常使用的数据放在快速的磁盘上。分区可以有不同的物理属性:分区可以有不同的存储参数(tablespace,pctfree,pctused,等等)分区表或索引可以跨表空间存储,分区不可以。同一模式对象的所有分区必须具有相同的逻辑属性:相同的列,数据类型,约束。,分区的作用,增加了数据的可用性不同的分区可以跨表空间存储,可以进行分区级的备份和恢复。不同的分区可以跨表空间存储,降低了磁盘损坏带来的数据不可用性。不可用的分区不会影响到对其它分区的查询和维护提高了系统性能服务器可以进行智能的分区检测跳过与查询无关的分区访问跳过不在线的分区在物理设备上负载均衡将数据分散存储在多个磁盘上,实现并行存取,分区关键字,分区关键字决定了划分分区的依据只能是标准数据类型:Number,Date,Character(VARCHAR2,CHAR)可以是多至16个的列的联合对关键字的修改不能导致记录在分区之间的移动分区的数据范围LESS THAN 子句指定每个分区的上限值。除第一个分区外,每一个分区都有一个隐含的下限值(即前一个分区的上限值)。最后一个分区的上限值可以设定为 MAXVALUE必须按照升序排列来声明分区。,建立分区表例1,CREATE TABLE sales97(acct_no number(5),product_id number(12),qty number(8),sales_date date)PARTITION BY RANGE(sales_date)(PARTITION p1 VALUES LESS THAN(to_date(01-4月-1997,dd-mon-yyyy)TABLESPACE p1_space,PARTITION p2 VALUES LESS THAN(to_date(01-7月-1997,dd-mon-yyyy)TABLESPACE p2_space,PARTITION p3 VALUES LESS THAN(to_date(01-10月-1997,dd-mon-yyyy)TABLESPACE p3_space,PARTITION p4 VALUES LESS THAN(MAXVALUE);,建立分区表例2,CREATE TABLE stu_score(stu_num NUMBER(5),score number not null,test_year number not null,test_month number not null,test_day number not null)PARTITION BY RANGE(test_year,test_month,test_day)(PARTITION score_q1 VALUES LESS THAN(1997,07,01)TABLESPACE education1,PARTITION score_q2 VALUES LESS THAN(1998,02,01)TABLESPACE education2),查看分区情况,查分区表分区数 select partition_count from user_part_tables where table_name=SALES97PARTITION_COUNT-4查分区表分区划分情况情况select partition_name,tablespace_name,partition_position,high_valuefrom user_tab_partitionswhere table_name=STU_SCORE;-SCORE_Q1 EDUCATION1 1 1997,07,01 SCORE_Q2 EDUCACION2 2 1998,02,01,建立分区注意事项,设置分区的界限VALUES LESS THAN 定义了分区的上界VALUES LESS THAN 必须取值Number,Character,DateMAXVALUE定义分区的最上界任何合法的存储子句均可用于分区(tablespace,pctfree.)没有为单独的分区设置存储子句时,使用基表的存储子句在分区表中不能包含LONG类型的列。系统为每一分区设置一个隐含的CHECK约束(分区的最高限制是MAXVALUE时除外)。聚集表不能分区,分区表的访问,分区对表名的扩展:模式名.表名 PARTITION(分区名)例:SELECT*FROM sales97 WHERE qty 1000 AND sales_date BETWEEN 01-4月-97 AND 30-6月-97;指定分区SELECT*FROM sales97 PARTITION(p2)WHERE qty 1000;INSERT INTO sales97 PARTITION(p4)SELECT*FROM lastest_data;注意:分区表名的不兼容性,分区表的访问,分区值的检查insert into stu_scorevalues(98007,50,1998,2,1);错误位于第1行:ORA-14400:插入的分区键超出最高的合法分区键。使用别名select*from stu_score partition(score_q1)q1where q1.score85建立视图create view sco_q1 asselect*from stu_score partition(score_q1);,分区索引,一般索引(非分区索引)CREATE INDEX sales97_idxON sales97(sales_date);分区索引索引分区只有当索引本身足够大且适于分区时,索引分区才是有意义的。索引分区可提高可用性,提供并行索引扫描,提高性能。选择分区索引的主列(索引列)与选择非分区索引主列没有区别(根据where 子句的应用)。,分区索引策略,一旦决定为表创建一个分区索引,必须决定如何组织、划分该索引的分区。两种选择:全局分区索引(GLOBAL):按自定的索引关键字来分区,对等分区索引,也称局部索引(LOCAL):创建与分区表的各分区一一对应的索引分区,GLOBAL,分区表,分区表,非分区表,LOCAL,分区索引,对等分区索引,非分区索引,对等分区对象,定义:下列属性完全一样的两个模式对象有相同的分区关键字相同数量的分区相同的分区界限使用对等分区的优点:对等分区对象是主、细表。全部对应的主细记录在相应的数据分区中,可很快完成两个表的连接。在这种情况下,磁盘存取的减少类似于使用数据簇(聚集)来“予连接”主细表。对等分区的对象是表和索引::当查询时,特定索引分区中的全部键值只引用相应表分区中的记录。当一个分区不可用时只有相应的分区索引不可用,不影响其他分区及分区索引,因此提高数据可用性。当更新一个表分区的数据时,只须调整相应的分区索引。,分区表与对等分区索引,建分区表CREATE TABLE sales97(acct_no NUMBER(5),product_id NUMBER(12),qty NUMBER(8),sales_date DATE)PARTITION BY RANGE(sales_date)(PARTITION q1 VALUES LESS THAN,PARTITION q2 VALUES LESS THAN,PARTITION q3 VALUES LESS THAN,PARTITION q4 VALUES LESS THAN.);建分区索引与对应分区表构成对等分区对象,。使用LOCAL属性CREATE INDEX sales_idx ON sales97(sales_date)LOCAL(PARTITION index_q1,PARTITION index_q2,PARTITION index_q3,PARTITION index_q4);,全局分区索引,与分区表不构成对等分区对象,按索引码分区,而不是按表的分区关键字使用GLOBAL全局分区索引能够包含相应表全部分区的键值,在OLTP环境下提供比分区索引更好的性能。CREATE INDEX product_idx ON sales97(product_id)GLOBAL PARTITION BY RANGE(product_id)(PARTITION pidx1 VALUES LESS THAN(100)tablespace users,PARTITION pidx2 VALUES LESS THAN(200)tablespace students,PARTITION pidx3 VALUES LESS THAN(MAXVALUE);,分区索引例,对等分区索引(local)create index stu_idx(97,7,1 98,2,1)on stu_score(test_year,test_month,test_day)local(partition index_q1,partition index_q2);全局分区索引(global)create index stu_g_idxon stu_score(stu_num)global partition by range(stu_num)(partition pidx1 values less than(95000)tablespace users,partition pidx2 values less than(96000)tablespace students,partition pidx3 values less than(maxvalue);,查看分区索引,select partition_name,high_value,statusfrom user_ind_partitionswhere index_name=STU_IDX;-INDEX_Q1 1997,07,01 USABLEINDEX_Q2 1998,02,01 USABLEselect partition_name,high_value,statusfrom user_ind_partitionswhere index_name=STU_G_IDX;-PIDX1 95000 USABLEPIDX2 96000 USABLEPIDX3 MAXVALUE USABLE,分区表的管理,分区可独立管理,分区操作仅在单一分区上发生作用。分区级的操作:alter table Add 分区alter table Drop分区 modify 分区 Move 分区 Split 分区 Rename分区 Exchange分区 Imported/Exported Load 分区数据,分区索引的管理,分区索引的管理类似于分区表的管理alter index drop partition(只对global索引)alter index split partition(只对global索引)alter index rename partitionalter index rebuild partition alter index modify partitionalter index unusablealter index stu_idx rebuild partition index_q1;alter index stu_g_idx rebuild partition pidx1;,分区表的维护-增加分区,ALTER TABLE stu_score ADD PARTITION score_q3 VALUES LESS THAN(1998,07,01)TABLESPACE students;常用来维护历史数据,用来增加另外时间段的数据。用于在分区表的高端增加分区如果增加的分区在分区表的中间,或最后分区边界是MAXVALUE时在高端增加分区,要用其他办法(拆分分区)如果分区表有对等分区索引,则分区索引会随之增加(分区索引名用表分区名)。,分区索引的自动调整,select partition_name,high_value,status from user_ind_partitions where index_name=STU_IDX;-INDEX_Q1 1997,07,01 USABLEINDEX_Q2 1998,02,01 USABLESCORE_Q3 1998,07,01 USABLE(改名之前)索引改名:alter index stu_idx rename partition score_q3 to index_q3;select where index_name=STU_G_IDX;-PIDX1 95000 USABLEPIDX2 96000 USABLE 没有变化PIDX3 MAXVALUE USABLE,分区表的维护删除分区,ALTER TABLE stu_score DROP PARTITION score_q3;用于删除历史数据不想删除分区中的数据时,应首先将分区数据合并到邻近分区相应分区索引将被删除全局索引变为不可用(需要重构),删除分区索引,select partition_name,high_value,statusfrom user_ind_partitionswhere index_name=STU_IDX;-INDEX_Q1 1997,07,01 USABLEINDEX_Q2 1998,02,01 USABLEselect partition_name,high_value,statusfrom user_ind_partitionswhere index_name=STU_G_IDX;-PIDX1 95000 UN USABLEPIDX2 96000 UNUSABLEPIDX3 MAXVALUE UNUSABLE,分区表操作删除分区记录,ALTER TABLE stu_score TRUNCATE PARTITION score_q3;也可以使用SQL语句中的Delete删除分区中的数据,但会比较慢。表中数据清空以后,对等分区索引会自动变化。非对等分区索引和一般索引变为不可用状态。-SCORE_Q2 STUDENTS 1998,02,01 表分区SCORE_Q3 STUDENTS 1998,07,01SCORE_Q1 USERS 1997,07,01-INDEX_Q2 1998,02,01 USABLE 索引分区INDEX_Q1 1997,07,01 USABLEINDEX_Q3 1998,07,01 USABLE-PIDX1 95000 UNUSABLE 全局分区PIDX2 96000 UNUSABLEPIDX3 MAXVALUE UNUSABLE,索引不可用,可能使索引不可用(IU)的操作清除记录的分区操作(TRUNCATE PARTITION)跳过局部索引(LOCAL)的 Import对数据库的直接SQL*LOADER改变ROWID的分区操作(MOVE/SPLIT PARTITION)如果索引分区被标记为IU,用户发出使用该索引分区的SELECT 或DML语句时,将得到错误提示。这时需要重建索引。select*from stu_score where stu_num=950001错误位于第1行:ORA-01502:索引 WXY.STU_G_IDX 或这类索引的分区是在不可使用的状态,重建索引,alter index rebuild partition可以为local或global分区索引重建某个分区。例alter index stu_g_idx rebuild partition pidx1;alter index stu_g_idx rebuild partition pidx2;alter index stu_g_idx rebuild partition pidx3;重建索引还可以改变表空间等其他存储属性。alter index stu_g_idx rebuild partition pidx1 tablespace student2,分区表的维护修改分区,修改分区的物理属性alter table stu_score modify partition score_q1 storage(maxextents 50);置分区表对应的局部索引为不可用状态。alter table stu_score modify partition score_q1 unusable local indexes;,用于插入和转入数据。为使局部索引可用,必须重建索引分区重建已被标记为iu的局部分区索引alter table stu_score modify partition score_q1 rebuild unusable local indexes,分区表的操作重命名分区,修改分区名ALTER TABLE stu_scoreRENAME PARTITION score_q3 to score_qq3;附:修改表名ALTER TABLE stu_scoreRENAME to student_score;,分区表的操作移动分区,ALTER TABLE MOVE PARTITION移动表分区到另外一个数据段上。新的数据段产生,旧的数据段删除(可在原表空间,也可移到其他表空间。用于将分区移动到其它设备上,或用于减少分区碎片。相应的分区索引和其他类型的索引都应该重建。alter table stu_score move partition score_q1;,分区表的操作拆分分区,ALTER TABLE SPLIT PARTITION将分区在分区范围内拆分为两个分区创建了两个分区,每一个新分区有单独的数据段,新的物理属性,旧分区被删除相应的局部索引也被SPLIT,并被标记为IU全局索引和非分区索引被标记为IUalter table stu_score split partition score_q2 at(1997,10,1)into(partition score_q21,partition score_q22);分区名 分区上限值 分区索引 SCORE_Q1 1997,07,01 INDEX_Q1SCORE_Q21 1997,10,01 SCORE_Q21SCORE_Q22 1998,02,01 SCORE_Q22SCORE_Q3 1998,07,01 INDEX_Q3,分区表的操作交换数据,ALTER TABLE EXCHANGE PARTITION用于非分区表和分区表的一个分区之间的双向交换。可以交换数据和索引段物理属性不变可以带with validation 或without validation。当数据不在分区范围时,WITH VALIDATION将报错。WITHOUT VALIDATION假定数据均在分区范围。例:alter table stu_score exchange partition score_q1 with table stu_score97 without validation;,分区表操作合并分区,使用IMPORT/EXPORT可以将邻近分区合并为一个分区使用Export从低层分区取出要合并的数据使用SQL语句DROP已经Exported的分区使用Import将取出的数据合并到邻近分区使用SQL语句实现分区的合并insert into stu_tempselect*from stu_score partition(score_q1);alter table stu_score drop partition score_q1;insert into stu_scoreselect*from stu_temp;,SQL语句的并行处理,什么是Oracle的并行,并行服务器选项允许多个数据库实例运行在一个松散耦合多处理器系统(或集群系统)的不同接点上,同时存取一个 Oracle物理数据库,从而为用户提供了多种数据库存取路径。并行、容错并行SQL语句处理将一个SQL语句(如查询)分为几个子任务,然后启动多个进程并行处理子任务,并将结果快速返回给用户。利用多进程、多CPU,缩短语句执行时间。SQL语句的并行执行不需要并行服务器选项。,串行处理,扫描emp表,扫描dep表,连接,排序,CPU,CPU,CPU,CPU,查询结果,Select ename,age,dnamefrom emp,depwhere emp.dno=dep.dnoorder by age;,单个进程执行一条SQL语句,SQL语句的并行处理,Select ename,age,dnamefrom emp,depwhere emp.dno=dep.dnoorder by age;,扫描emp表,扫描dep表,连接,排序,CPU,CPU,CPU,CPU,查询结果,多个进程执行一条SQL语句,并行处理的条件,软件环境 并行SQL处理系统。一个并行的SQL处理系统接受一个SQL请求,智能地将它分解为几个较小的可以并行的子任务,然后使用所有空闲的CPU并行处理这些子任务,以达到缩短总处理时间的目的。Oracle服务器使用一种特殊的操作系统进程结构,并行处理对数据库的某些请求。硬件 多CPU系统,并行SQL语句的硬件环境,SMP(symmetric multiprocessor)对称多处理机,CPU,CPU,CPU,内存,可以被并行处理的操作,select(扫描表),update,delete insert select 连接操作(join)聚合操作(统计)not in,group by,order by select distinct,union create table as select create index,rebuild indexsplit partiton,move partition,rebuild index partition 从SQL语句中调用PL/SQL函数。,并行机制-协调进程,一个协调进程(coordinator)调度多个从属进程(slave processes)并行执行SQL语句。,Select*from emp;,串行进程,Emp表,Select*from emp;,协调进程,Emp表,并行进程,并行机制,并行优化器当用户执行SQL语句时,优化器确定是否以并行方式执行语句,以及每一个操作的并行度是多少。并行进程池在启动一个数据库实例后,Oracle 建立一个并行进程池。当开始并行操作时,协调进程从并行池中获得并行进程资源,并把它们分配给有关操作。实行并行步骤SQL语句的前台进程变为并行协调进程。协调进程根据并行度从并行池中获得所需数量的从属并行进程。系统将SQL语句化为一系列的操作,每个操作都尽可能地并行执行。当语句处理完毕,协调进程返回结果给用户进程,并释放从属并行进程(回进程池)。,并行方法,块并行按ROWID的范围并行适用于查询(包括select 语句和在 DML和DCL中的子查询)。适用于move split 分区,rebuild 分区.适用于分区/非分区的表和索引。分区并行适用于对分区表和分区索引的操作。从属进程并行适用于往非分区表中插入数据。插入记录时,将记录分摊到各个从属进程分别插入因新记录还没有rowid,所以无法块并行。,并行计划,优化器确定了一条语句的执行计划协调器决定计划中的每一个操作的并行方法块并行、分区并行 优化器确定执行计划中操作的执行顺序 语句的数据流操作之间的并行需要其他操作输出的操作称为父操作父操作子操作:消费者 生产者两种并行一个操作的并行 intro-operation 并行数据流中不同操作之间的并行 inter-operation 并行,并行模式,Select*from emp order by ename;(无索引)如果并行度为4,意味着对于任何给定的操作,可以激活4个并行进程。实际上8个进程执行该语句。Intro inter intro,用户进程,协调进程,A-G,H-M,N-S,T-Z,scan,scan,scan,scan,Emp表,并行度指定,为执行一个单一操作而启动的进程数叫并行度语句级指定 PARALLEL子句 PARALLEL(DEGREE 4)语句提示hint/*+parallel(emp,3)*/表和索引级在建表和索引的语句中指定。隐含指定基于CPU数、存储表的设备(磁盘)数、分区数等,并行度确定,并行协调程序决定并行度的依据:检查在 SQL语句中的hint或parallel 子句。检查在表和索引定义语句中的指定。使用隐含并行度指定。一旦确定并行度,它将成为有关操作的并行度,即协调进程为一操作申请的并行进程数。而实际进程数还取决于进程池中的可用资源。,并行子句语法,Parallel子句语法(在DDL语句中使用)用于create table,create index,create clusteralter table,alter indexrebuild,alter clusteralter databaserecoverhint 指定(在DML语句中使用)/*+parallel(表名,并行度)*/,并行执行SQL语句例,以并行度4同时执行扫描和更新 update/*+parallel(emp,4)*/empset sal=sal+100 where age50;以并行度3执行插入语句insert/*+parallel(emp2,3)*/into emp2 select/*+parallel(emp1,5)*/from emp1;以并行度4执行删除语句delete/*+parallel(tab1,4)*/from tab1where col1 50 and col110000;,并行执行SQL语句例,在DDL 语句中指定parallel子句(并行度为5)该命令执行时使用10个进程,5个用于扫描emp1 表,5个用于向emp2表中添加数据。CREATE TABLE emp2PARALLEL(DEGREE 5)AS SELECT*FROM emp1 WHERE deptno=10;下面的命令使用10个进程构造索引,5个用于扫描EMP表,另外5个用于向EMP_IDX中添加数据CREATE INDEX emp_idxON emp(ename)PARALLEL(DEGREE 5);,并行度确定例,在DML语句(查询)中指定并行度2select/*+parallel(emp2 2)*/*from emp2 where age50;采用表定义隐含并行度值(5)select*from emp2 where age50;采用系统隐含值select*from emp1 where age50;PARALLEL(DEGREE 1 INSTANCES 1)等同于 NOPARALLELdegree 单实例中的并行instances 实例间的并行(没有并行服务器时忽略),两种并行度,分别在并行服务器的5个实例上各启动5个恢复进程,共25个进程。ALTER DATABASE RECOVERTABLESPACE binkyPARALLEL(DEGREE 5 INSTANCES 5);改变EMP1表的预定义并行度ALTER TABLE emp1PARALLEL(DEGREE 2);,并行DML模式,为使并行DML生效,会话需要PARALLEL DML模式(特殊的锁、空间分配等)ALTER SESSION ENABLE PARALLEL DML;一个事物可以包含多个修改不同表的并行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可以是对象类型的属性,每行只能有一个 LONG LONG在线存储 LONG=2G LONG不能复制 LONG不能记录日志OCI可以处理该类型数据。varchar2 4k字符,比较,每行可以包含多个 LOBLOB可以离线存储LOB=4GLOB可以复制LOB的操作可以记录在日志中,LOB与LONGRAW的比较,多媒体数据类型应用(LOB例),CREATE TABLE person(pname VARCHAR2(10),resume CLOB,photo BLOB,homepage BFILE)LOB(resume,photo)STORE AS(TABLESPACE resume_space STORAGE(INITIAL 5m NEXT 1m PCTINCREASE 0);对LOB数据所使用的空间另行指定存储参数LOB子句,多媒体数据类型(LOB设置),CHUNK的尺寸决定访问LOB数据时一次处理数据块的个数如果LOB以大数据量读写时,将CHUNK设大如果LOB以小数据量读写时,将CHUNK设小如果LOB被经常访问,设置CACHE,缺省为NOCACHECREATE TABLE person_tab()LOB(resume,picture)STORE AS(TABLESPACE lob_tablespace CHUNK 4NOCACHE);,初始化LOB数据,Insert into person values(张大年,empty_clob(),empty_blob(),bfilename(person_dir,person.html);函数empty_clob()和 empty_blob()返回一个空的LOB定位器值(与空值不一样)。函数bfilename(逻辑目录名,文件名)返回一个bfile定位器值,它与一个位于服务器文件系统中的物理 文件相连。建立逻辑目录名(数据库对象):create directory person_diras/user/person;,BFILE与逻辑目录,使用BFILE将LOB存储在数据库外BFILE只读,只能在ORACLE外创建和更新通过数据库对象DIRECTORY定位外部文件用户对于DIRECTORY的访问需经过授权(不是在某个模式下建目录对象)。创建DIRECTORY对象时:不检查实际目录、文件是否存在。应先创建相应的物理路径不要将DIRECTORY设置在ORACLE数据文件目录ORACLE必须对该目录有读权限。严格控制CREATE或DROP ANY DIRECTORY权限的授予,BFILE与逻辑目录,以管理员帐号执行下列语句CREATE DIRECTORY mydir AS/home/image;GRANT READ ON DIRECTORY my

    注意事项

    本文(Oracle8数据库系统.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开