《数据厍设计与开发》讲义 4.3 ORACLE数据库存取管理 数据库管理员的任务是使所有运行 Oracle 数据库的系统能够有效的工作。数据库管 理员为每一个用户提供技术支持,并且应 当对 Oracle软件中出现的所有问题都相当 熟悉。除上一节介绍的 ORACLE实例设置外, ORACLE数据库的存储对数据库的性能也有 很大影响,另外 ORACLE的安全性、备份与 恢复机制也在本节中介绍 4.3.1管理 ORACLE存储 4.3.2 ORACLE安全管理 4.3.3 ORACLE备份与恢复 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3 ORACLE数据库存取管理 • 数据库管理员的任务是使所有运行Oracle 数据库的系统能够有效的工作。数据库管 理员为每一个用户提供技术支持,并且应 当对Oracle软件中出现的所有问题都相当 熟悉。除上一节介绍的ORACLE实例设置外, ORACLE数据库的存储对数据库的性能也有 很大影响,另外ORACLE的安全性、备份与 恢复机制也在本节中介绍。 4.3.1 管理ORACLE存储 4.3.2 ORACLE安全管理 4.3.3 ORACLE备份与恢复
《数据厍设计与开发》讲义 4.3.1管理 ORACLE存储 在21的数据库数据存储介绍中,我们 已经知道 ORACLE的数据存取是面向数 据块(页)的;在41中,我们知道 ORACLE数据库的存储体系是表空间、 段、区间、块,下面将集中讨论 ORACLE存储对性能的影响 4.3.11管理数据库对象 4.3.1.2理解数据库碎片 4.3.1.3管理回滚段 4.3.1.4鉴别存储问题 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1 管理ORACLE存储 • 在2.1的数据库数据存储介绍中,我们 已经知道ORACLE的数据存取是面向数 据块(页)的;在4.1中,我们知道 ORACLE数据库的存储体系是表空间、 段、区间、块,下面将集中讨论 ORACLE存储对性能的影响。 4.3.1.1管理数据库对象 4.3.1.2理解数据库碎片 4.3.1.3管理回滚段 4.3.1.4鉴别存储问题
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 管理 Oracle块 Oracle服务器寻址的最小存储单元是 Oracle块。无 论段是一个表、索引、簇或者其他对象,块结构是相 同的。设计一个性能最优的数据库要从对0 racle块适 当的配置和管理开始。 0 racle块是由三部分组成的:块头、数据存储区 自由空间区。块头包含有关块的信息(什么类型的段 数据存储在块中,什么段在块中有数据,块地址以及 指向存储在其中的实际行的指针)。块头由一个固定 部分和一个可变部分组成,在块中块头通常使用85到 100字节 在0 racle块中,主要关注管理数据存储区域和自由 空间区域。数据区域是块中实际存储行的地方。自由 空间区是一个保留的区域,被定义为总的可用空间的 百分数,用于存储有关在块中的行将来更新的信 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –管理Oracle块 Oracle服务器寻址的最小存储单元是Oracle块。无 论段是一个表、索引、簇或者其他对象,块结构是相 同的。设计一个性能最优的数据库要从对Oracle块适 当的配置和管理开始。 Oracle块是由三部分组成的:块头、数据存储区、 自由空间区。块头包含有关块的信息(什么类型的段 数据存储在块中,什么段在块中有数据,块地址以及 指向存储在其中的实际行的指针)。块头由一个固定 部分和一个可变部分组成,在块中块头通常使用85到 100字节。 在Oracle块中,主要关注管理数据存储区域和自由 空间区域。数据区域是块中实际存储行的地方。自由 空间区是一个保留的区域,被定义为总的可用空间的 百分数,用于存储有关在块中的行将来更新的信息
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 理解 PCTFREE与 PCTUSED PCTFREE和 PCTUSED是应用于段的两个存储 参数,当0 racle向数据库中写信息时,它必须 首先在一个段的分配区中找到一个或更多块来 存储信息 如果在块中自由空间的百分数比 PCTFREE参 数大得多,它就可以用来存储新信息。当自由 空间的百分数低于 PCTFREE时,块就被认为是 “满的” 当块中使用空间的百分数低于 PCTUSED时, 它就可以被用来存储新信 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –理解PCTFREE与PCTUSED PCTFREE和PCTUSED是应用于段的两个存储 参数,当Oracle向数据库中写信息时,它必须 首先在一个段的分配区中找到一个或更多块来 存储信息。 如果在块中自由空间的百分数比PCTFREE参 数大得多,它就可以用来存储新信息。当自由 空间的百分数低于PCTFREE时,块就被认为是 “满的” 。 当块中使用空间的百分数低于PCTUSED时, 它就可以被用来存储新信息
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 理解 PCTFREE与 PCTUSED 使0 racle保持足够的额外空间用于行增长 (修改结构),而不需要跨块存储。保持行被限 制在一个单独的块中有助于使数据库以最高性 能运行 PCTFRE和 PCTUSED的值不能等于100%。由 数据库引擎处理引起的系统开销可以通过在 PCTFRE和 PCTUSED之间留至少20%的裕量而得 到解决。缺省 PCTFREE为10, PCTUSED为40。 PCTFREEA和 PCTUSED在数据库段的存储子句 中被指定。可以用 dba tables、 dba clusters 或者dba_ indexes数据字典视图查询它们目前 的值 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –理解PCTFREE与PCTUSED 使Oracle保持足够的额外空间用于行增长 (修改结构),而不需要跨块存储。保持行被限 制在一个单独的块中有助于使数据库以最高性 能运行。 PCTFREE和PCTUSED的值不能等于100%。由 数据库引擎处理引起的系统开销可以通过在 PCTFREE和PCTUSED之间留至少20%的裕量而得 到解决。缺省PCTFREE为10,PCTUSED为40。 PCTFREE和PCTUSED在数据库段的存储子句 中被指定。可以用dba_tables、dba_clusters 或者dba_indexes数据字典视图查询它们目前 的值
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 索引与 PCTUSED/ PCTFREE 索引使用 PCTFREE和 PCTUSED与表相比不同。 只有当一个索引最初建立时这些参数适用 PCTFREE的设置应让索引结构最初在叶块中建 立时就有足够的空间,这样就可以增加辅助关 键字,而不必拆分已存在的叶块提供给新关键 字。索引不必设置 PCTUSED。 当为一个已存在的表建立新索引时,如果 预料到表中的数据较稳定,修改不多时,可选 择较小的 PCTFREE,反之则应选择较大的值。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –索引与PCTUSED/PCTFREE 索引使用PCTFREE和PCTUSED与表相比不同。 只有当一个索引最初建立时这些参数适用。 PCTFREE的设置应让索引结构最初在叶块中建 立时就有足够的空间,这样就可以增加辅助关 键字,而不必拆分已存在的叶块提供给新关键 字。索引不必设置PCTUSED。 当为一个已存在的表建立新索引时,如果 预料到表中的数据较稳定,修改不多时,可选 择较小的PCTFREE,反之则应选择较大的值
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 管理表存储区 创建表时,系统自动在表空间中分配一个 区间,构成数据段。表的空间需求是平均行长 与行数的乘积。确定表的容量应该在表建立之 前的设计阶段完成。预期的增长和存储参数值 等问题应该在建表时处理。 ORACLE用如下方式 来为未来的数据预留空间(参看2.1内容): 1)为表的数据段设置存储参数,控制每次 分配的区间大小。 2)用存储参数 PCTFREE和 PCTUSED控制构成 数据段的区间中各个块的空间利用率 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –管理表存储区 创建表时,系统自动在表空间中分配一个 区间,构成数据段。表的空间需求是平均行长 与行数的乘积。确定表的容量应该在表建立之 前的设计阶段完成。预期的增长和存储参数值 等问题应该在建表时处理。ORACLE用如下方式 来为未来的数据预留空间(参看2.1内容): 1)为表的数据段设置存储参数,控制每次 分配的区间大小。 2)用存储参数PCTFREE和PCTUSED控制构成 数据段的区间中各个块的空间利用率
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 管理索引 当查询语句中的 WHERE子句表达式含有被索 引的关键字时, ORACLE将自动启动索引。 许多应用程序员(以及DBA通过申请更多索 引的办法解决数据库的性能问题。但更多的索 引不仅会影响修改性能,而且在一个查询中并 不是子句中涉及的索引都启用 过多的索引并不会一直提供比较好的 SELECT 性能。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –管理索引 当查询语句中的WHERE子句表达式含有被索 引的关键字时,ORACLE将自动启动索引。 许多应用程序员(以及DBA)通过申请更多索 引的办法解决数据库的性能问题。但更多的索 引不仅会影响修改性能,而且在一个查询中并 不是子句中涉及的索引都启用。 过多的索引并不会一直提供比较好的SELECT 性能
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 管理索引:关于索引的管理和使用的几点技巧: )组合索引是提高性能的有力工具,特别是针对只需从 索引段读出而不用从数据段的查询 2)如果在查询子句中包含“ IS NULL或‘ IS NOT NULL', 索引将不在启用。 3)在查询条件中涉及多个索引,而又无明显优先可选项 的查询中, ORACLE一般按索引类型及列的性质选择启动 索引,当有唯一性和非唯一性索引均可使用时,选择只 启用唯一性索引。 4)在关键字列上进行运算可以屏蔽定义在此列上的索引 5)在WERE子句中若包含不等于(!=或‘NOT)运算, ORACLE将不在启用索引,但可对其他列使用索引 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –管理索引: 关于索引的管理和使用的几点技巧: 1)组合索引是提高性能的有力工具,特别是针对只需从 索引段读出而不用从数据段的查询。 2)如果在查询子句中包含‘IS NULL’或‘IS NOT NULL’ , 索引将不在启用。 3)在查询条件中涉及多个索引,而又无明显优先可选项 的查询中,ORACLE一般按索引类型及列的性质选择启动 索引,当有唯一性和非唯一性索引均可使用时,选择只 启用唯一性索引。 4)在关键字列上进行运算可以屏蔽定义在此列上的索引。 5)在WHERE子句中若包含不等于(‘!=’或‘NOT’)运算, ORACLE将不在启用索引,但可对其他列使用索引
《数据厍设计与开发》讲义 4.3.1.1管理 ORACLE数据库对象 监控回滚段 回滚段实际上是动态的,DBA应该集中精力 保证每个回滚段及与之联系的表空间有足够 的空间用于增长。 关心回滚段的目的在于合理地配置系统资 源,提高回滚段的利用率,关键是各个事务 要占用多大的存储空间,其活动时间有多长。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 4.3.1.1 管理ORACLE数据库对象 –监控回滚段 回滚段实际上是动态的,DBA应该集中精力 保证每个回滚段及与之联系的表空间有足够 的空间用于增长。 关心回滚段的目的在于合理地配置系统资 源,提高回滚段的利用率,关键是各个事务 要占用多大的存储空间,其活动时间有多长