已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大型大型 ORACLE 数据库优化设计方案数据库优化设计方案 摘要主要从大型数据库 ORACLE 环境四个不 同级别的调整分析入手 分析 ORACLE 的系统结构和工作机理 从九个不同方面较全面地总结了 ORACLE 数据库的优化调整方 案 关键词ORACLE 数据库环境调整优化设计方案 对于ORACLE 数据库的数据存取 主要有四个不同的调整级别 第一级调整是操作系统级包括硬件平台 第二级调整是 ORACLERDBMS 级的调整 第三级是数据库设计级的调整 最后一 个调整级是 SQL 级 通常依此四级调整级别对数据库进行调整 优化 数据库的整体性能会得到很大的改善 下面从九个不同 方面介绍 ORACLE 数据库优化设计方案 一 数据库优化自由结构 OFA OptimalflexibleArchitecture 数据库的逻辑配置对数据库性能有很大的影响 为此 ORACLE 公司对表空间设计提出了一种优化结构 OFA 使用这种结构进 行设计会大大简化物理设计中的数据管理 优化自由结构 OFA 简单地讲就是在数据库中可以高效自由地分布逻辑数据对象 因 此首先要对数据库中的逻辑对象根据他们的使用方式和物理结 构对数据库的影响来进行分类 这种分类包括将系统数据和用户 数据分开 一般数据和索引数据分开 低活动表和高活动表分 开等等 二 充分利用系统全局区域SGA SYSTEMGLOBALAREA SGA是 oracle 数据库的心脏 用户的进程对这个内存区发送 事务 并且以这里作为高速缓存读取命中的数据 以实现加速 的目的 正确的 SGA 大小对数据库的性能至关重要 SGA 包括 以下几个部分 2 字典缓冲区 该缓冲区内的信息包括用户账号数据 数据 文件名 段名 盘区位置 表说明和权限 它也采用 LRU 方式 管理 3 重做日志缓冲区 该缓冲区保存为数据库恢复过程中用于 前滚操作 4 SQL 共享池 保存执行计划和运行数据库的 SQL 语句的语 法分析树 也采用 LRU 算法管理 如果设置过小 语句将被连 续不断地再装入到库缓存 影响系统性能 另外 SGA还包括大池 JAVA 池 多缓冲池 但是主要是由 上面 4 种缓冲区构成 对这些内存缓冲区的合理设置 可以大 大加快数据查询速度 一个足够大的内存区可以把绝大多数数 据存储在内存中 只有那些不怎么频繁使用的数据 才从磁盘 读取 这样就可以大大提高内存区的命中率 三 规范与反规 范设计数据库 1 规范化2 反规范化 反规范的必要性 是否规范化的程度越高越好呢 答案是否定的 应根据实际 需要来决定 因为 分离 越深 产生的关系越多 结构越复 杂 关系越多 连接操作越频繁 而连接操作是最费时间的 在数据库设计中特别对以查询为主的数据库设计来说 频繁的 连接会严重影响查询速度 所以 在数据库的设计过程中有时 故意保留非规范化约束 或者规范化以后又反规范 这样做通 常是为了改进数据库的查询性能 加快数据库系统的响应速度 反规范技术 在进行反规范设计之前 要充分考虑数据的存取需求 常用 表的大小 特殊的计算 数据的物理存储等 常用的反规范技 术有合理增加冗余列 派生列 或重新组表几种 反规范化的 好处是降低连接操作的需求 降低外码和索引数目 减少表的 个数 从而提高查询速度 这对于性能要求相对较高的数据库 系统来说 能有效地改善系统的性能 但相应的问题是可能影 响数据的完整性 加快查询速度的同时降低修改速度 3 数据库设计中的优化策略 数据应当按两种类别进行组织 频繁访问的数据和频繁修改 的数据 对于频繁访问但是不频繁修改的数据 内部设计应当 物理不规范化 对于频繁修改但并不频繁访问的数据 内部设 计应当物理规范化 比较复杂的方法是将规范化的表作为逻辑 数据库设计的基础 然后再根据整个应用系统的需要 物理地 非规范化数据 规范与反规范都是建立在实际的操作基础之上 的约束 脱离了实际两者都没有意义 只有把两者合理地结合 在一起 才能相互补充 发挥各自的优点 四 合理设计和管 理表 1 利用表分区 分区将数据在物理上分隔开 不同分区的数据可以制定保存 在处于不同磁盘上的数据文件里 这样 当对这个表进行查询 时 只需要在表分区中进行扫描 而不必进行 FTS FullTableScan 全表扫描 明显缩短了查询时间 另外处于 不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘 I O 一个精心设置的分区可以将数据传输对磁盘 I O 竞争均匀 地分散开 2 避免出现行连接和行迁移 在建立表时 由于参数pctfree 和 pctused 不正确的设置 数 据块中的数据会出现行链接和行迁移 也就是同一行的数据不 保存在同一的数据块中 如果在进行数据查询时遇到了这些数 据 那么为了读出这些数据 磁头必须重新定位 这样势必会 大大降低数据库执行的速度 因此 在创建表时 就应该充分 估计到将来可能出现的数据变化 正确地设置这两个参数 尽 量减少数据库中出现行链接和行迁移 3 控制碎片 碎片 fragmentation 是对一组非邻接的数据库对象的描述 碎 片意味着在执行数据库的功能时要耗费额外的资源 磁盘 I O 磁盘驱动的循环延迟 动态扩展 链接的块等 并浪费大量磁 盘空间 当两个或多个数据对象在相同的表空间中 会发生区 间交叉 在动态增长中 对象的区间之间不再相互邻接 为了 消除区间交叉将静态的或只有小增长的表放置在一个表空间中 而把动态增长的对象分别放在各自的表空间中 在 createtable createindex createtablespace createcluster 时 在 storage 子句中的参数的合理设置 可以减少碎片的产生 4 别名的使用 别名是大型数据库的应用技巧 就是表名 列名在查询中以 一个字母为别 名 查询速度要比建连接表快1 5 倍 5 回滚段的交替使用 由于数据库配置对应用表具有相对静止的数据字典和极高的 事务率特点 而且数据库的系统索引段 数据段也具有相对静 止 并发现在应用中最高的负荷是回滚段表空间 把回滚段定 义为交替引用 这样就达到了循环分配事务对应的回滚段 可 以使磁盘负荷很均匀地分布 五 索引Index 的优化设计 1 管理组织索引 索引可以大大加快数据库的查询速度 索引把表中的逻辑值 映射到安全的 RowID 因此索引能进行快速定位数据的物理地 址 但是有些 DBA 发现 对一个大型表建立的索引 并不能改 善数据查询速度 反而会影响整个数据库的性能 这主要是和 SGA 的数据管理方式有关 ORACLE 在进行数据块高速缓存管理 时 索引数据比普通数据具有更高的驻留权限 在进行空间竞 争时 ORACLE 会先移出普通数据 对一个建有索引的大型表的 查询时 索引数据可能会用完所有的数据块缓存空间 ORACLE 不得不频繁地进行磁盘读写来获取数据 因此在对一个大型表 进行分区之后 可以根据相应的分区建立分区索引 如果对这 样大型表的数据查询比较频繁 或者干脆不建索引 另外 DBA 创建索引时 应尽量保证该索引最可能地被用于 where 子 句中 如果对查询只简单地制定一个索引 并不一定会加快速 度 因为索引必须指定一个适合所需的访问路径 2 聚簇的使用 Oracle提供了另一种方法来提高查询速度 就是聚簇 Cluster 所谓聚簇 简单地说就是把几个表放在一起 按一 定公共属性混合存放 聚簇根据共同码值将多个表的数据存储 在同一个 Oracle 块中 这时检索一组 Oracle 块就同时得到两个 表的数据 这样就可以减少需要存储的 Oracle 块 从而提高应 用程序的性能 六 多 CPU 和并行查询 PQO ParallelQueryOption 方式的利用 1 尽量利用多个CPU 处理器来执行事务处理和查询 CPU的快速发展使得 ORACLE 越来越重视对多 CPU 的并行技 术的应用 一个数据库的访问工作可以用多个 CPU 相互配合来 完成 加上分布式计算已经相当普遍 只要可能 应该将数据 库服务器和应用程序的 CPU 请求分开 或将 CPU 请求从一个服 务器移到另一个服务器 对于多 CPU 系统尽量采用 ParallelQueryOption PQO 并行查询选项 方式进行数据库操作 2 使用ParallelQueryOption PQO 并行查询选择 方式进行数 据查询 使用PQO 方式不仅可以在多个 CPU 间分配 SQL 语句的请求处 理 当所查询的数据处于不同的磁盘时 一个个独立的进程可 以同时进行数据读取 3 使用SQL LoaderDirectPath 选项进行大量数据装载 使用该方法进行数据装载时 程序创建格式化数据块直接写 入数据文件中 不要求数据库内核的其他 I O 七 实施系统资 源管理分配计划 ORACLE提供了 DatabaseResourceManager DRM 数据库资源 管理器 来控制用户的资源分配 DBA 可以用它分配用户类和 作业类的系统资源百分比 在一个 OLDP 系统中 可给联机用 户分配 75 的 CPU 资源 剩下的 25 留给批用户 另外 还可 以进行 CPU 的多级分配 除了进行 CPU 资源分配外 DRM 还 可以对资源用户组执行并行操作的限制 八 使用最优的数据 库连接和 SQL 优化方案 1 使用直接的OLEDB 数据库连接方式 通过ADO 可以使用两种方式连接数据库 一种是传统的 ODBC 方式 一种是 OLEDB 方式 ADO 是建立在 OLEDB 技术上 的 为了支持 ODBC 必须建立相应的 OLEDB 到 ODBC 的调用 转换 而使用直接的 OLEDB 方式则不需转换 从而提高处理速 度 2 使用ConnectionPool 机制 在数据库处理中 资源花销最大的是建立数据库连接 而且 用户还会有一个较长的连接等待时间 解决的办法就是复用现 有的 Connection 也就是使用 ConnectionPool 对象机制 ConnectionPool的原理是 IIS ASP 体系中维持了一个连接缓 冲池 这样 当下一个用户访问时 直接在连接缓冲池中取得 一个数据库连接 而不需重新连接数据库 因此可以大大地提 高系统的响应速度 3 高效地进行SQL 语句设计 通常情况下 可以采用下面的方法优化SQL 对数据操作的表 现 1 减少对数据库的查询次数 即减少对系统资源的请求 使用快照和显形图等分布式数据库对象可以减少对数据库的查 询次数 2 尽量使用相同的或非常类似的 SQL 语句进行查询 这样 不仅充分利用 SQL 共享池中的已经分析的语法树 要查询的数 据在 SGA 中命中的可能性也会大大增加 3 限制动态 SQL 的使用 虽然动态 SQL 很好用 但是即使 在 SQL 共享池中有一个完全相同的查询值 动态 SQL 也会重新 进行语法分析 4 避免不带任何条件的 SQL 语句的执行 没有任何条件的 SQL 语句在执行时 通常要进行 FTS 数据库先定位一个数据块 然后按顺序依次查找其它数据 对于大型表这将是一个漫长的 过程 5 如果对有些表中的数据有约束 最好在建表的 SQL 语句 用描述完整性来实现 而不是用 SQL 程序中实现 6 可以通过取消自动提交模式 将 SQL 语句汇集一组执行 后集中提交 程序还可以通过显式地用 COMMIT 和 ROLLBACL 进行提交和回滚该事务 7 检索大量数据时费时很长 设置行预取数则能改善系统 的工作表现 设置一个最大值 当 SQL 语句返回行超过该值 数值库暂时停止执行 除非用户发出新的指令 开始组织并显 示数据 而不是让用户继续等待 九 充分利用数据的后台处 理方案减少网络流量 1 合理创建临时表或视图 所谓创建临时表或视图 就是根据需要在数据库基础上创建 新表或视图 对于多表关联后再查询信息的可建新表 对于单 表查询的可创建视图 这样可充分利用数据库的容量大 可扩 充性强等特点 所有条件的判断 数值计算统计均可在数据库 服务器后台统一处理后追加到临时表中 形成数据结果的过程 可用数据库的过程或函数来实现 2 数据库打包技术的充分利用 利用数据库描述语言编写数据库的过程或函数 然后把过程 或函数打成包在数据库后台统一运行包即可 3 数据复制 快照 视图 远程过程调用技术的运用 数据复制 即将数据一次复制到本地 这样以后的查询就使 用本地数据 但是只适合那些变化不大的数据 使用快照也可 以在分布式数据库之间动态复制数据 定义快照的自动刷新时 间或手工刷新 以保证数据的引用参照完整性 调用远程过程 也会大大减少因频繁的 SQL 语句调用而带来的网络拥挤 总之 对所有的性能问题 没有一个统一的解决方法 但 ORACLE 提供了丰富的选择环境 可以从ORACLE 数据库的体系结构 软件结构 模式对象以及 具体的业务和技术实现出发 进行统筹考虑 提高系统性能需 要一种系统的整体的方法 在对数据库进行优化时 应对应用 程序 I O 子系统和操作系统 OS 进行相应的优化 优化是 有目的地更改系统的一个或多个组件 使其满足一个或多个目 标的过程 对 Oracle 来说 优化是进行有目的的调整组件级以 改善性能 即增加吞吐量 减少响应时间 如果 DBA 能从上述 九个方面综合考虑优化方案 相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年青海省玉树藏族自治州高三下第一次测试语文试题含解析
- 26年基础护理进乡村培训课件
- 【卫生专业技术资格考试病理学技术(初级(士)106)相关专业知识应考重点(解析版)】
- 26年靶向高质量发展规范
- 服装质检员职业技能等级认定考试复习题库(附答案)
- 【2026】五粮液股份有限公司财务和估值分析11000字(论文)
- 26年机构认知障碍心理状态
- 医学26年:糖尿病视网膜病变诊疗 查房课件
- 大学就业指导创新策略
- 做账实操-芯片设计公司账务处理
- 《建筑施工花篮拉杆附着式钢管脚手架安全技术标准》(发布版)
- 《中华人民共和国农产品质量安全法》培训与解读课件
- 2025年宁夏地理会考试卷及答案
- 小牛串焊机培训
- 老年人手机课件
- 2025年甘肃省甘南州农林牧草科学院高层次人才引进13人备考练习题库及答案解析
- 2025年党建工作知识竞赛测试题库附答案
- 石油化工安装工程预算定额(2019版)
- 医院收费窗口服务规范
- 2025年《农产品质量安全法》试题及答案
- 2025年石家庄市市属国有企业招聘笔试考试试题(含答案)
评论
0/150
提交评论