Oracle数据库10g独立软件供应商和客户的应用系统性能.ppt_第1页
Oracle数据库10g独立软件供应商和客户的应用系统性能.ppt_第2页
Oracle数据库10g独立软件供应商和客户的应用系统性能.ppt_第3页
Oracle数据库10g独立软件供应商和客户的应用系统性能.ppt_第4页
Oracle数据库10g独立软件供应商和客户的应用系统性能.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

在实践中体验Oracle数据库的优越性能LengTan BoChen甲骨文公司 主题 真实体验Oracle9i数据库马上获取Oracle数据库10g的性能优势采用Oracle数据库10g的主要ISV客户案例分析使用Oracle性能方法调整基于Oracle的大型应用程序 主题 真实体验Oracle9i数据库马上获取Oracle数据库10g的性能优势采用Oracle数据库10g的主要ISV客户案例分析使用Oracle性能方法调整基于Oracle的大型应用程序 简化init ora Oracle提供了许多可调整的参数但最好不要随便调整 除了少数几个内存缓冲区调整参数外 仅在理由充分的情况下才修改参数随意修改init ora将减慢系统速度默认配置经过了全面测试和慎重权衡移植到10g以消除非标准化参数设置 极好的特性源自优良的设计 每个Oracle数据库版本都引入了极好的特性 从而提高了性能但高性能的关键始终要归于出色的设计良好的数据模型 表以及索引设计强健 精致的SQL新特性不能补偿低劣的设计但良好的设计可充分发挥诸如并行机制 分区 新数据结构等特性 64位计算的优缺点 64位计算正在流行但32位服务器仍然占据着最大的市场份额64位并非一定意味着更快诚然 更大的缓冲区高速缓存和排序区意味着更少的I O操作和随之而来的速度提升但更大的工作集 长指针等 将降低CPU效率请慎重考虑什么最适合您的应用程序 使用并行机制和分区 分区是一个极好的管理特性 能加速加载和清除过程与并行操作结合 将使此特性更加突出使用范围和列表组合分区清除查询数据使用散列分区优化连接和并行DML 更好地管理CBO CBO是一种强健的智能工具请勿滥用 它将提供有意义的统计信息不要对CBO期望过高它无法猜测查询的目的 必须根据编写的代码执行操作利用CBO计划了解优化应用程序的更好方式CBO可自动运行多项功能 请确保您已熟悉正在使用的优化器在10g中这不是问题 其中CBO就是优化器 主题 真实体验Oracle9i数据库马上获取Oracle数据库10g的性能优势采用Oracle数据库10g的主要ISV客户案例分析使用Oracle性能方法调整基于Oracle的大型应用程序 RBO CBO 在10g中正式取消了对RBO的支持为移植到CBO的RBO客户Oracle已经测试了非常多的语句但是数据的偏差和应用程序的特定情况可能导致不是很理想的的计划开发了一个维护统计信息的良好方案监视RBO特有的SQL例如 禁用索引访问的col1 0 1和col2 2作为移植的一部分 重新编写了某些SQL PL SQL改善 新的PL SQL优化编译器更复杂的代码生成器全局代码优化器性能提高且代码规模缩小全面支持本地编译编译时性能警告 不再有DUAL 引用DUAL来获取时间戳记 增量序列等在大型SMP上 与DUAL相关的缓冲区缓存链锁序列化将降低可伸缩性在10g中 DUAL变为一个行源 消除了问题要检查DUAL对于您的9i应用程序是否有影响 请使用X DUAL代替DUAL进行测试 散列分区索引 在INSERT密集的应用程序中 主键的索引维护将是序列化的关键对于非常大的配置 SMP或RAC 更是如此通过对索引进行散列分区 以消除问题使用一组温和点替代一个热点 LOB增强 10g中的LOB代码路径已显著简化现在几乎和LONGRAW的代码路径一样简单最优的LOB设计取决于工作负载以及内存和磁盘使的用率尽量避免由于缓冲区缓存的大小变化和泛滥而引起的内联到外联的LOB移植 ETL 数据泵实用工具 高速的 数据泵 导入 导出替代了原来的导出和导入功能新的集成的结构带有文档说明的程序包接口高速的直接路径加载 卸载最优地随取随用运行利用并行机制执行自动伸缩 主题 真实体验Oracle9i数据库马上获取Oracle数据库10g的性能优势采用Oracle数据库10g的主要ISV客户案例分析使用Oracle性能方法调整基于Oracle的大型应用程序 采用10g的ISV SAP计划在2005年第1季度认证10gPeopleSoft将在2004年秋季认证10gSiebel正在积极研究10g特性 并可能在10g上开发7 8版Siebel没有在新的Oracle版本上认证其以前的版本当前的Siebel版本 7 7 在9iR2上通过了认证 主题 真实体验Oracle9i数据库Oracle数据库10g即时性能的好处采用Oracle数据库10g的主要ISV客户案例分析使用Oracle性能方法调整基于Oracle的大型应用程序 背景 客户是一个中国大型电信设备供应商调整的应用程序肩负重要任务 并且主要使用Oracle数据库 Oracle性能方法 从用户那里获取关于性能问题范围的真实反馈 此步骤为定义问题 获取一组完整的操作系统 数据库和应用程序统计信息 然后检查主机系统和Oracle统计信息 以寻找证据 参考常见性能错误列表 以查看收集的数据是哪些因素造成了性能问题 使用收集的性能数据建立一个系统状况概念模型 提出修改建议以及实施修改的预期结果 然后 实施并测量应用程序的性能变化 确定是否达到了第1步中定义的性能目标 如果没有达到 重复第5步和第6步 直到达到性能目标 配置 模型 HPrp7410操作系统 HP UX11 1164位CPU 8RAM 4GB交换空间 4GB磁盘阵列 VA74系列Oracle9i数据库第2版v9 2 0 364位 瓶颈识别 Statspack 负载概要 每秒每个事务 重做大小 42 887 13586 52 瓶颈识别 续 事件等待超时总等待平均等待等待时间 秒 毫秒 txn 日志文件同步91 90702 067221 0 瓶颈识别 续 最耗时的前5个事件 总花费时间事件等待时间 s 百分比 日志文件同步91 9072 06781 78日志文件并行写操作48 8982529 95CPU时间1837 23数据库文件并行写操作18014 55控制文件并行写操作2116 25 RAID5 RAID0 1 最耗时的前5个事件 总花费时间事件等待时间 s 百分比 日志文件同步59 93213847 93CPU时间10335 84日志文件并行写操作58 6473411 89缓冲区忙等待7 37751 90数据库文件序列读取7473 97 RAID5 RAID0 1 续 总等待等待平均等待事件等待超时时间 秒 毫秒 txn 日志文件同步59 9327913821 0 减少缓冲区忙等待 之前最耗时的前5个事件 总花费时间事件等待时间 s 百分比 日志文件同步122 18726147 84CPU时间20838 11日志文件并行写操作112 9355710 52缓冲区忙等待14 59891 56 减少并发块访问 之后最耗时的前5个事件 总花费时间事件等待时间 s 百分比 日志文件同步419 34291249 82CPU时间69638 00日志文件并行写操作385 30719910 85数据库文件并行写操作8519 51锁释放14 3105 30 异步I O 操作系统内核参数Max async ports 200Aio max ops 2048重新编译并重新链接Oracle可执行文件 索引编排表 将频繁更新 引用的表创建为IOT 以使查询运行更快并显著减少物理读操作 在使用IOT之前 对于数据库 HPORA例程 hpora1快照 72 74的每个段前5位最频繁的物理读操作 所有者表空间对象名称对象类型物理读操作总百分比 OPS SCPQTDATA2BASETAB PPSTABLE11 44999 96 使用IOT 对于数据库 HPORA例程 hpora1快照 72 74的每个段前5位最频繁的物理读操作 所有者表空间对象名称对象类型物理读操作总百分比 OPS SCPQTDATA2SYS IOT OVERTABLE35154 25OPS SCPQTDATA2SYS IOT TOPINDEX29645 75 使用增量检查点 之前负载概要 每秒每个事务 重做大小 227 895 29579 94逻辑读操作 4 736 3912 05块变化 1 966 755 00物理读操作 1 180 00物理写操作 99 170 25事务 92 96 禁用增量检查点 之后负载概要 每秒每个事务 重做大小 229 152 73577 76逻辑读操作 4 765 7012 02块变化 1 984 475 00物理读操作 2 120 01物理写操作 53 600 14事务 396 62 Keep池 频繁引用的表存储在KEEPPOOL中 以减少物理读操作 OCI优化 语句缓存OCI COMMIT ON SUCCESSPREFETCH 传统的语句缓存 OCIStmtPrepare OCIBindByPos OCIParamGet OCIDefineByPos OCIStmtFetch OCIAttrGet OCIStmtExecute 优化的语句缓存 OCIStmtPrepare OCIBindByPos OCIParamGet OCIDefineByPos OCIStmtFetch OCIAttrGet OCIStmtExecute 伪代码 intcachePos getStmtFromCache slctStmt ifCacheMiss step1 PreparetheSQLstatementstep2 Bindallparameterstotheplace holdersinSQLstatement step3 ExecutetheSQLstatementifCacheMiss step4 Getthenumberofthereturnedcol

温馨提示

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

评论

0/150

提交评论