友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
富士康小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

oracle从入门到精通(PDF格式)-第10部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!




…………………………………………………………Page 60……………………………………………………………

资源来自网络,仅供学习!                                                  Oracle 从入门到精通 



          2。   存放方案对象的仓库;  

   

  表空间的类型  

       1。  SYSTEM 表空间:  

                 只有一个;  

                 在创建数据库的时候创建;  

                 包含了数据字典;  

                 包含了 SYSTEM 的撤消段;  

                 最好不要存放对象(表、索引。。。。);  



       2。  NON…SYSTEM表空间:  

                 存放独立的段;            

                 易于执行空间管理;  

                 可以控制分配给用户的空间;  

   

    创建表空间:           

 CREATE  TABLESPACE userdata DATAFILE(永久类型)  

  '路径+文件名 1。dbf'SIZE nM;'路径+文件名 2。dbf'SIZE nM;。。。。。。  

 EXTENT MANAGEMENT LOCAL 'UNIFORM SIZE 128K';//注明为本地管理  

   

  永久类型表空间:存放固有的存储对象。  

    临时类型表空间:  

       可以删除;  

       存放排序时所用到的临时段。  

       用于排序操作  

       被多个用户共享(一个临时段的不同区)  

       不包含任何永久对象  

       CREATE TEMPORARY TABLESPACE temp_name  

       TEMPFILE '路径+文件名。dbf' size nM EXTENT MANAGEMENT LOCAL 'UNIFORM SIZE 128K';  

   

    默认的临时表空间:  

       不允许被删除;  

       不能被离线;  

       不能将一个默认的临时表空间指定到一个永久类型的表空间上;  

       设置数据库级的默认的临时表空间;  

       减少使用 SYSTEM 表空间存储临时数据的需求;  

       创建方法:  

          CREATE DATABASE 的时候指定;  

          ALTER DATABASE   

              先创建一个临时表空间  

              再指定 ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_name;  

    查看临时表空间:select * from database_properties;  

   

    撤消类型表空间:  

       只能存放回滚段(撤消段)。  

       只能使用本地管理;  

       CREATE UNDO TABLESPACE undo_name  



                               第 60 页,共 106 页 


…………………………………………………………Page 61……………………………………………………………

资源来自网络,仅供学习!                                             Oracle 从入门到精通 



       DATAFILE '路径+文件名。dbf' size nM;  



18、表空间的空间管理(区的管理):  



1、本地管理:  



         9i 默认管理方式;  

         性能好;  

         空闲区的信息记录在位图区中;  

         位图用于记录空闲空间(连续的 0就表示有空闲);  

         每一位相当于一个数据块或一组数据块;  

         位的值代表空闲或被使用;  

         空间管理方式:  

             自动分配空间;  

             用户分配空间,空间中每个区的大小等同;  



2、数据字典管理表空间:  



    8i 以前的默认管理方式;   

    空闲区信息记录在数据字典中;  

    当区被分配和释放的时候,特定的表被更新;  

    



3、存储参数:  



    initial 初始化大小  

    next  下一个区大小  

    pctincrease 区大小增量    

    minextents  最小区数(本地管理)  

    maxextents  最大区数(本地管理)  



4、表空间状态:  



     读写(read write):      

     只读(read only):  

      ALTER TABLESPACE space_name READ ONLY;  

      引起检查点  

      数据只能进行查询  

      对象可以从表空间删除  

             删除对象步骤:  

             删除字典信息  

             释放空间       

     联机(online)  

     脱机(offline):  

      离线的表空间不能访问到其包含的数据。  



                            第 61 页,共 106 页 


…………………………………………………………Page 62……………………………………………………………

资源来自网络,仅供学习!                                                  Oracle 从入门到精通 



       系统表空间不能脱机;  

       有激活回滚的表空间不能脱机;   

       默认的临时表空间不能脱机;  

    

  先修改读写或只读,再修改在线或离线;  



5、查看表空间信息:  



      表空间信息:DBA_TABLESPACES  

               VTABLESPACE  

      数据文件信息:DBA_DATA_FILES  

                  VDATAFILE  

      临时文件信息:DBA_TEMP_FILES  

                  VTEMPFILE  



6、重定义表空间的大小  



    *、改变数据文件的大小:  

       使用 AUTOEXTEND 选项设置自动;   

       CREATE TABLESPACE space_name DATAFILE 'file_name。dbf' SIZE nM   

       AUTOEXTEND ON NEXT nM MAXSIZE nM;       

       不利于性能;  

       查看 DBA_DATA_FILES      

       使用 ALTER DATABASE 手动修改;  

          ALTER DATABASE DATAFILE ‘文件名’ RESIZE nM;  

          缩小是用限制的;  

    *、使用 ALTER TABLESPACE 命令增加数据文件;  

       ALTER TABLESPACE space_name ADD DATAFILE '文件名' SIZE nM;  

          均衡 I/O;  

          不能增加得太多;  

          只能增加不能删除;  



7、操作表空间:  



    文件大小先设置为自动;  

    有计划地增加数据文件;  

    监控表空间;  

    按需求手动增加或减少表空间的大小;  



8、移动数据文件:  



       *、 OPEN 状态下执行;         

          表空间必须离线;  

          目标数据文件必须存在;  

          ALTER TABLESPACE RENAME DATAFILE 'old_name'TO'new_name';  

     



                               第 62 页,共 106 页 


…………………………………………………………Page 63……………………………………………………………

资源来自网络,仅供学习!                                              Oracle 从入门到精通 



      *、 MOUNT 状态下执行;  

          目标文件必须存在;  

          ALTER DATABASE RENAME FILE 'old_name'TO'new_name';  



9、删除表空间:  



    不能删除的状态:是 SYSTEM 表空间;  

                  有激活回滚段的表空间;  

    DROP TABLESPACE space_name INCLUDING CONTENTS AND DATAFILES 'CASCADE CONSTRAINTS';  



19、存储结构和关系  



  数据块  

  区:空间扩展的单位  

  段和数据文件的关系:  

  组成段的所有区必须在段表空间的数据文件上;  



1、段类型:  



       1。   表  

       2。   表分区:  

             分区表(partitioned table):分了多个区的表,单表多段,存储海量数据;  

             特点:  

                  容量大;性能好;  

             分类:  

                  范围  

                  散列  

                  列表:按单点的值进行分区;               



       3。   簇表(cluster):多表单段;  

             表和表有共同的字段,公用字段只存储一次;  

             减少存储空间,查询速度快;  

             全表扫描的时间增长;  



      4。   索引  

       5。   索引组织表(index…organized table):将字段索引和字段值放在一个表中,没有物 

          理的 rowid。  

             查找索引字段值非常快,其他字段的查询却非常慢;  

             单表单段;  



       6。   索引分区  

       7。  回滚段:保证事务回滚(存放原始数据);  

       8。  临时段  

       9。   大对象段  

       10。 签到表:多维表才会用到;  

       11。 引导段:初始化数据字典信息;  



                             第 63 页,共 106 页 


…………………………………………………………Page 64……………………………………………………………

资源来自网络,仅供学习!                                                  Oracle 从入门到精通 



2、区:        



  是段在表空间上使用的连续空间  

  当段执行下列操作的时候分配区:  

    Created 段创建  

    Extended 段扩展  

    Altered 手动分配  

  当段执行下列操作的时候释放区:  

    Droped   

    Altered   

    Truncated   



3、数据库块  



  最小的 I/O单位  

  有一个或多个操作系统块组成  

  可以在表空间创建时分配  

  DB_BLOCK_SIZE 参数设置默认块的大小  



4、9I提供非标准块  



  数据库可以使用一个标准块和四个非标准块创建;  

  快的大小可以是 2KB 到32KB 之间的任意一个 2 的N 次方数;  

  好处:对数据的操作特性上,在做查询的时候减少 I/O 使用;  



5、标准块大小  



    在数据库创建的时候通过 DB_BLOCK_SIZE parameter 参数设置。在数据库创建以后不能被修 

  改。  

    SYSTEM 和 TEMPORARY 临时表空间必须使用  

    DB_CACHE_SIZE 设置了标准块对应的数据高速缓存中 DEFAULT 池的大小  

    DEFAULT 池的大小:  

       最小是 4M 或 16M  默认为 48M  



6、非标准块的大小  



       使用下列参数配置对应的数据高速缓存:  

       DB_2K_CACHE_SIZE FOR 2 KB BLOCKS   

       DB_4K_CACHE_SIZE FOR 4 KB BLOCKS  

       DB_8K_CACHE_SIZE FOR 8 KB BLOCKS  

       DB_16K_CACHE_SIZE FOR 16 KB BLOCKS  

       DB_32K_CACHE_SIZE FOR 32 KB BLOCKS  

    DB_nK_CACHE_SIZE 不允许使用与标准块对应的参数。   



                               第 64 页,共 106 页 


…………………………………………………………Page 65……………………………………………………………

资源来自网络,仅供学习!                                             Oracle 从入门到精通 



7、数据块的内容:  



     1。   块头:  

             自顶向下递增  

             事务槽:通过事务槽来表示锁定的事务,如果想执行事务必须先获得事务槽。  



     2。   空闲空间:没有碎片  

     3。   数据:自底向上递增  



8、块的空间利用参数:  



    INITRANS  初始事务数(事务槽的个数:平常并发事务的个数)  

    MAXTRANS  最大事务数(最大事务槽数)   

    PCTFREE   为 UPDATE 保留空间的百分比;如果没有 UPDATE操作设置为零。   

    PCTUSED   标识数据块什么时候可以成为可用状态(FREELIST)  

          FREELIST 可用数据块状态  

  当块没有空间后,会构建新的块,并在原块里保留指针制向新块,但性能下降(行迁移)。   



9、数据块管理:  



  设置好之后不能更改。  

    1、自动空间管理:(默认)  

      管理数据库的段中空闲的一种方法:  

      使用 bitmap用 0 或1 标识不可用或可用状态。  

      只能在表空间级上才能设置:  

      在 CREATE TABLESPACE 语句最后加上 SEGMENT SPACE MANAGEMENT AUTO;  

      限制:不能用于包含了 LOB(大对象)对象的表空间。  

    2、手动管理:  

      可以使用下面的参数手动配置数据块:  

      PCTFREE  PCTUSED  FREELIST  

  得到存储信息:          

    DBA_EXTENTS    查看区信息  

    DBA_SEGMENTS   查看段信息  

    DBA_TABLESPACES 查看表空间信息  

    DBA_DATA_FILES  查看数据文件信息   

    DBA_FREE_SPACE  查看空闲空间信息  

    



10、管理回滚段(Undo)的数据  



     管理方法:  

       1。  自动 Undo 管理  

      2。  手动 Undo 管理  

      回滚段的原理:  

    用来暂时保存事务中的原始数据,至少保存到事务结束,保留到事务结束后回滚段中的空间 

  被其他事务覆盖之前;  

    作用:  



                             第 65 页,共 106 页 


…………………………………………………………Page 66……………………………………………………………

资源来自网络,仅供学习!                                             Oracle 从入门到精通 



     1。  事务回滚;  

     2。  事务恢复;  

     3。  读一致性;  

               在事务提交后查询,是在被查询表中查询的;  

               如果在事务执行中并发查询,数据库会在回滚段中取得数据,但正在并发查 

          询的时候事务提交就会产生读一致性错误的问题。  

    特性:  

          1。  最少需要两个区;              

          2。  使用区是以循环的方式使用;  

          3。  一个事务只能使用一个回滚段(事务不能跨回滚段);  

          4。  在一个回滚段上可以有多个事务(多个事务可以共享一个回滚段),每个事务使 

             用不同的区;  

          5。  在一个区中可以同时有多个事务的数据,但只能有一个活动的事务。  

          6。  事务对区的使用是连续的,当他将要写的下一个区有活动的事务时,它就会执 

             行扩展区操作;    

  长时间执行事务不提交,会造成阻碍会话。  

  减小事务大小,提交次数高一些,避免区扩展操作;  



20、Undo 段的类型:   



1。NON…SYSTEM类型:  



    自动模式:需要一个 UNDO 类型的表空间。(默认)设计为最少 200M,一般是几个 G。  

        配置参数:  UNDO_MANAGEMENT = AUTO/MANUAL 自动/手动  

                  UNDO_TABLESPACE = tablespace_name      

        提供足够大的 UNDO 类型表空间;  

   可以创建多个回滚类型的表空间,但只有一个是被使用的,当做切换操作的时候才需要多个表 

空间。  

     切换:正在运行的事务可以切换。              

     可以在创建数据库的 CREATE DATABASE 命令中增加一个子句创建 UNDO 表空间:  

      CREATE DATABASE database_name  

      。。。。。。。  

      undo tablespace space_name datafile 'filepath' size nM autoextend on  

      或  

      使用 CREATE UNDO TABLESPACE 命令创建:  

      create undo tablespace space_name datafile 'filepath' size nM ;      

    手动模式:  

             需要一个永久类型的表空间  

             私有:被单个实例使用  

             公有:被任意实例使用  

  DEFERRED :当表空间被修改为 OFFLINE ;IMMEDIATE,TEMPORARY,RECOVERY 状态时候出现。  



2。SYSTEM类型:  



    用于 SYSTEM 表空间的对象。  



                             第 66 页,共 106 页 


…………………………………………………………Page 67……………………………………………………………

资源来自网络,仅供学习!                                                     Oracle 从入门到精通 



    修改一个 UNDO 表空间:  

    alter tablespace space_name add datafile 'filepath' size nM autoextend on;  

    

    切换 UNDO 表空间:  

    可以从一个 UNDO 表空间切换到另一个。  

    在实例中一次只能使用一个 UNDO 表空间。  

    多个 UNDO 表空间可以存放在一个实例中,但只有一个是激活的。  

    使用 ALTER SYSTEM 命令动态切换 UNDO 表空间。  

    ALTER SYSTEM set UNDO_TABLESPACE = space_name;  

    

    删除 UNDO 表空间:  

    drop tablespace space_name;  

    UNDO 只是在当前实例没有使用它的时候才可以删除。  

    为了删除一个激活的 UNDO 表空间:  

    切换到一个新的 UNDO 表空间;  

    当所有表空间上的当前事务结束后删除表空间;    



3。自动UNDO段管理的其他参数:    



    UNDO_SUPPRESS_ERRORS parameter  

    设置为 TRUE,可以压制在 AUTO 模式下执行手动管理命令时的错误。   

    UNDO_RETENTION  parameter  

    控制为了保证读一致性而保留在提交后回滚段中数据的时间。  

    查看 UNDO 段信息:  

  SELECT。。。 FROM VUNDOSTAT;回滚段的使用频度  

  DBA_ROLLBACK_SEGS  

    



21、管理表    



  rowid 格式:伪列。  

    扩展型(extended)  

           组成:数据对象号(data object number)、相对文件号(relative file number)、 

     块号(block number)、行号(row number)(每个号6 个字节)  

           由 18 个字母组织的,存成 60 个字节,代表一行数据的绝对地址  

     限制型(restrcted)  

           组成:块号(block number)、行号(row number)、文件号(file number)  

       

  exec DBMS_ROWID 包(backage)  

  SELECT 。。。DBMS_ROWID。 。。。FROM table_name;  



1。创建表提示:  



           将表创建在独立的表空间中;  

           使用本地管理;  

           表使用标准的区大小来避免在表空间上产生碎片;                       



                                 第 67 页,共 106 页 


…………………………………………………………Page 68……………………………………………………………

资源来自网络,仅供学习!                                                 Oracle 从入门到精通 



        在创建各种文件的时候最好都有它们独立的表空间支持。  



2。创建临时表  



  CREATE GLOBAL TEMPORARY TABLE   

  。。。。。。。  

    特征:  

          用户创建的临时表是用户的会话独占的;  

          表在事务或会话过程中包含数据;  

          只会有结构而不会有存储;  

          在数据上不会得到 DML锁;  

          对该表所做的 DML 操作不会写到日志上;  

          不用做 DELETE 或TRUNCATE 操作,该表在内存中,当事务结束或会话结束时释放;  

          可以在临时表上创建索引、视图、触发器;    



3。修改存储参数和块空间利用参数:  



       alter table owner。table_name  

       pctfree 30//块参数  

       pctused 50//块参数  

       storage(next 500k minextents 2 maxextents 120);//存储参数  



4。手动分配区:  



  alter table hr。employees allocate e
返回目录 上一页 下一页 回到顶部 9 9
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!