您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle数据库10g独立软件供应商和客户的应用系统性能
在实践中体验Oracle数据库的优越性能LengTan,BoChen甲骨文公司主题真实体验Oracle9i数据库马上获取Oracle数据库10g的性能优势采用Oracle数据库10g的主要ISV客户案例分析–使用Oracle性能方法调整基于Oracle的大型应用程序主题真实体验Oracle9i数据库马上获取Oracle数据库10g的性能优势采用Oracle数据库10g的主要ISV客户案例分析–使用Oracle性能方法调整基于Oracle的大型应用程序简化init.oraOracle提供了许多可调整的参数–但最好不要随便调整!除了少数几个内存缓冲区调整参数外,仅在理由充分的情况下才修改参数随意修改init.ora将减慢系统速度默认配置经过了全面测试和慎重权衡移植到10g以消除非标准化参数设置极好的特性源自优良的设计每个Oracle数据库版本都引入了极好的特性,从而提高了性能但高性能的关键始终要归于出色的设计–良好的数据模型、表以及索引设计–强健、精致的SQL新特性不能补偿低劣的设计但良好的设计可充分发挥诸如并行机制、分区、新数据结构等特性。64位计算的优缺点64位计算正在流行但32位服务器仍然占据着最大的市场份额64位并非一定意味着更快诚然,更大的缓冲区高速缓存和排序区意味着更少的I/O操作和随之而来的速度提升但更大的工作集(长指针等)将降低CPU效率请慎重考虑什么最适合您的应用程序使用并行机制和分区分区是一个极好的管理特性,能加速加载和清除过程与并行操作结合,将使此特性更加突出使用范围和列表组合分区清除查询数据使用散列分区优化连接和并行DML更好地管理CBOCBO是一种强健的智能工具–请勿滥用;它将提供有意义的统计信息不要对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作为移植的一部分,重新编写了某些SQLPL/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的ISVSAP计划在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性能方法1.从用户那里获取关于性能问题范围的真实反馈,此步骤为定义问题。2.获取一组完整的操作系统、数据库和应用程序统计信息,然后检查主机系统和Oracle统计信息,以寻找证据。3.参考常见性能错误列表,以查看收集的数据是哪些因素造成了性能问题。4.使用收集的性能数据建立一个系统状况概念模型。5.提出修改建议以及实施修改的预期结果,然后,实施并测量应用程序的性能变化。6.确定是否达到了第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.97RAID5-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=200–Aio_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.62Keep池频繁引用的表存储在KEEPPOOL中,以减少物理读操作OCI优化语句缓存OCI_COMMIT_ON_SUCCESSPREFETCH传统的语句缓存:OCIStmtPrepareOCIBindByPosOCIParamGetOCIDefineByPosOCIStmtFetchOCIAttrGetOCIStmtExecute优化的语句缓存:OCIStmtPrepareOCIBindByPosOCIParamGetOCIDefineByPosOCIStmtFetchOCIAttrGetOCIStmtExecute伪代码intcachePos=getStmtFromCache(slctStmt,&isCacheMiss);ifCacheMiss{step1:PreparetheSQLstatementstep2:Bindallparameterstotheplace-holdersinSQLstatement}step3:ExecutetheSQLstatementifCacheMiss{step4:Getthe
本文标题:Oracle数据库10g独立软件供应商和客户的应用系统性能
链接地址:https://www.777doc.com/doc-12163 .html