大型ORACLE数据库优化设计方案_第1页
大型ORACLE数据库优化设计方案_第2页
大型ORACLE数据库优化设计方案_第3页
大型ORACLE数据库优化设计方案_第4页
大型ORACLE数据库优化设计方案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

第 1 页 共 8 页 大型大型 ORACLEORACLE 数据库优化设计方案数据库优化设计方案 摘要主要从大型数据库 ORACLE 环境 四个不同级别的调整分析入手 分析 ORACLE 的系统 结构和工作机理 从九个不同方面较全面地总结了 ORACLE 数据库的优化调整方案 关键词 ORACLE 数据库环境调整优化设计方案 对于 ORACLE 数据库的数据存取 主要有四个不 同的调整级别 第一级调整是操作系统级包括硬件平 台 第二级调整是 ORACLERDBMS 级的调整 第三级是数 据库设计级的调整 最后一个调整级是 SQL 级 通常 依此四级调整级别对数据库进行调整 优化 数据库 的整体性能会得到很大的改善 下面从九个不同方面 介绍 ORACLE 数据库优化设计方案 一 数据库优化 自由结构 OFA 数据库的逻辑配置对数据库性能有很 大的影响 为此 ORACLE 公司对表空间设计提出了一 种优化结构 OFA 使用这种结构进行设计会大大简化 物理设计中的数据管理 优化自由结构 OFA 简单地 讲就是在数据库中可以高效自由地分布逻辑数据对象 因 此首先要对数据库中的逻辑对象根据他们的使用方式 和物理结构对数据库的影响来进行分类 这种分类包 括将系统数据和用户数据分开 一般数据和索引数据 第 2 页 共 8 页 分开 低活动表和高活动表分开等等 二 充分利用系统全局区域 SGA 并浪费大量磁盘空 间 当两个或多个数据对象在相同的表空间中 会发 生区间交叉 在动态增长中 对象的区间之间不再相 互邻接 为了消除区间交叉将静态的或只有小增长的 表放置在一个表空间中 而把动态增长的对象分别放 在各自的表空间中 在 createtable createindex createtablespace createcluster 时 在 storage 子句中的参数的合理 设置 可以减少碎片的产生 4 别名的使用 别名是大型数据库的应用技巧 就是表名 列名在查 询中以一个字母为别 名 查询速度要比建连 接表快倍 5 回滚段的交替使用 由于数据库 配置对应用表具有相对静止的数据字典和极高的事务 率特点 而且数据库的系统索引段 数据段也具有相 对静止 并发现在应用中最高的负荷是回滚段表空间 把回滚段定义为交替引用 这样就达到了循环分配事 务对应的回滚段 可以使磁盘负荷很均匀地分布 五 索引 Index 的优化设计 1 管理组织索 引 索引可以大大加快数据库的查询速度 索引把表 中的逻辑值映射到安全的 RowID 因此索引能进行快 第 3 页 共 8 页 速定位数据的物理地址 但是有些 DBA 发现 对一个 大型表建立的索引 并不能改善数据查询速度 反而 会影响整个数据库的性能 这主要是和 SGA 的数据管 理方式有关 ORACLE 在进行数据块高速缓存管理时 索引数据比普通数据具有更高的驻留权限 在进行空 间竞争时 ORACLE 会先移出普通数据 对一个建有 索引的大型表的查询时 索引数据可能会用完所有的 数据块缓存空间 ORACLE 不得不频繁地进行磁盘读 写来获取数据 因此在对一个大型表进行分区之后 可以根据相应的分区建立分区索引 如果对这样大型 表的数据查询比较频繁 或者干脆不建索引 另外 DBA 创建索引时 应尽量保证该索引最可能地被用于 where 子句中 如果对查询只简单地制定一个索引 并不一定会加快速度 因为索引必须指定一个适合所 需的访问路径 2 聚簇的使用 Oracle 提供了另 一种方法来提高查询速度 就是聚簇 所谓聚簇 简 单地说就是把几个表放在一起 按一定公共属性混合 存放 聚簇根据共同码值将多个表的数据存储在同一 个 Oracle 块中 这时检索一组 Oracle 块就同时得到 两个表的数据 这样就可以减少需要存储的 Oracle 块 从而提高应用程序的性能 六 多 CPU 和并行查 询 PQO 方式的利用 1 尽量利用多个 CPU 处理器 第 4 页 共 8 页 来执行事务处理和查询 CPU 的快速发展使得 ORACLE 越来越重视对多 CPU 的并行技术的应用 一个数据库 的访问工作可以用多个 CPU 相互配合来完成 加上分 布式计算已经相当普遍 只要可能 应该将数据库服 务器和应用程序的 CPU 请求分开 或将 CPU 请求从一 个服务器移到另一个服务器 对于多 CPU 系统尽量采 用 ParallelQueryOption 方式进行数据库操作 2 使用 ParallelQueryOption 方式进行数据查询 使 用 PQO 方式不仅可以在多个 CPU 间分配 SQL 语句的请 求处理 当所查询的数据处于不同的磁盘时 一个个 独立的进程可以同时进行数据读取 3 使用 SQL LoaderDirectPath 选项进行大量数据装载 使用 该方法进行数据装载时 程序创建格式化数据块直接 写入数据文件中 不要求数据库内核的其他 I O 七 实施系统资源管理分配计划 ORACLE 提供了 DatabaseResourceManager 来控制用户的资源分配 DBA 可以用它分配用户类和作业类的系统资源百分比 在一个 OLDP 系统中 可给联机用户分配 75 的 CPU 资源 剩下的 25 留给批用户 另外 还可以进行 CPU 的多级分配 除了进行 CPU 资源分配外 DRM 还 可以对资源用户组执行并行操作的限制 八 使用最 优的数据库连接和 SQL 优化方案 1 使用直接的 第 5 页 共 8 页 OLEDB 数据库连接方式 通过 ADO 可以使用两种方 式连接数据库 一种是传统的 ODBC 方式 一种是 OLEDB 方式 ADO 是建立在 OLEDB 技术上的 为了支 持 ODBC 必须建立相应的 OLEDB 到 ODBC 的调用转换 而使用直接的 OLEDB 方式则不需转换 从而提高处理 速度 2 使用 ConnectionPool 机制 在数据库 处理中 资源花销最大的是建立数据库连接 而且用 户还会有一个较长的连接等待时间 解决的办法就是 复用现有的 Connection 也就是使用 ConnectionPool 对象机制 ConnectionPool 的原理 是 IIS ASP 体系中维持了一个连接缓冲池 这样 当下一个用户访问时 直接在连接缓冲池中取得一个 数据库连接 而不需重新连接数据库 因此可以大大 地提高系统的响应速度 3 高效地进行 SQL 语 句设计 通常情况下 可以采用下面的方法优化 SQL 对数据操作的表现 减少对数据库的查询次数 即 减少对系统资源的请求 使用快照和显形图等分布式 数据库对象可以减少对数据库的查询次数 尽量使 用相同的或非常类似的 SQL 语句进行查询 这样不仅 充分利用 SQL 共享池中的已经分析的语法树 要查询 的数据在 SGA 中命中的可能性也会大大增加 限制 动态 SQL 的使用 虽然动态 SQL 很好用 但是即使在 第 6 页 共 8 页 SQL 共享池中有一个完全相同的查询值 动态 SQL 也 会重新进行语法分析 避免不带任何条件的 SQL 语 句的执行 没有任何条件的 SQL 语句在执行时 通常 要进行 FTS 数据库先定位一个数据块 然后按顺序 依次查找其它数据 对于大型表这将是一个漫长的过 程 如果对有些表中的数据有约束 最好在建表的 SQL 语句用描述完整性来实现 而不是用 SQL 程序中 实现 可以通过取消自动提交模式 将 SQL 语句汇 集一组执行后集中提交 程序还可以通过显式地用 COMMIT 和 ROLLBACL 进行提交和回滚该事务 检索 大量数据时费时很长 设置行预取数则能改善系统的 工作表现 设置一个最大值 当 SQL 语句返回行超过 该值 数值库暂时停止执行 除非用户发出新的指令 开始组织并显示数据 而不是让用户继续等待 九 充分利用数据的后台处理方案减少网络流量 1 合理创建临时表或视图 所谓创建临时表或视图 就 是根据需要在数据库基础上创建新表或视图 对于多 表关联后再查询信息的可建新表 对于单表查询的可 创建视图 这样可充分利用数据库的容量大 可扩充 性强等特点 所有条件的判断 数值计算统计均可在 数据库服务器后台统一处理后追加到临时表中 形成 数据结果的过程可用数据库的过程或函数来实现 第 7 页 共 8 页 2 数据库打包技术的充分利用 利用数据库描述语言 编写数据库的过程或函数 然后把过程或函数打成包 在数据库后台统一运行包即可 3 数据复制 快照 视图 远程过程调用技术的运用 数据复制 即将数据一次复制到本地 这样以后的查询就使用本 地数据 但是只适合那些变化不大的数据 使用快照 也可以在分布式数据库之间动态复制数据 定义快照 的自动刷新时间或手工刷新 以保证数据的引用参照 完整性 调用远程过程也会大大减少因频繁的 SQL 语 句调用而带来的网络拥挤 总之 对所有的性能问 题 没有一个统一的解决方法 但 ORACLE 提供了丰 富的选择环境 可以从 ORACLE 数据库的体系 结构 软件结构 模式对象以及具体的业务和技术实 现出发 进行统筹考虑 提高系统性能需要一种系统 的整体的方法 在对数据库进行优化时 应对应用程 序 I O 子系统和操作系统进行相应的优化 优化是 有目的地更改系统的一个或多个组件 使其满足一个 或多个目标的过程 对 Oracle 来说 优化是进行有 目的的调整组件级以改善性能 即增加吞吐量 减少 响应时间 如果 DBA 能从上述九个方面综合考虑优化 方案 相信多数 ORACLE 应用可以做到

温馨提示

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

评论

0/150

提交评论