oracle11gSPA应用在9i升级到10gSQL性能测試.docVIP

  • 4
  • 0
  • 约7.57千字
  • 约 10页
  • 2019-03-17 发布于江苏
  • 举报

oracle11gSPA应用在9i升级到10gSQL性能测試.doc

SPA实施目的 为了保证升级10g能更加平稳,我们采用Oracle 11g SQL 性能分析器(SQL Performance Analyzer,以下简称SPA)新功能来预测数据库的关键SQL在Oracle 10g平台上性能情况,以便提前发现问题并做相关的优化。 大型业务关键应用程序要在响应时间、吞吐量、运行时间和可用性方面提供特定服务级别的保证。对系统的任何更改(如升级数据库或修改配置)通常都需要进行全面的测试和验证,然后才能在生产系统中实施这些更改。在移到生产系统之前为了保证安全,数据库管理员(DBA) 必须让测试系统承受与生产环境中的工作量很近似的压力,以便分析系统级更改对整体SQL 性能的影响,并在在移到生产之前进行必要的优化。 Oracle Database 11g 引入了SQL 性能分析器;使用该工具可以准确地预测系统更改对SQL 语句性能的影响。这种功能可向DBA 提供有关SQL 语句性能的详细信息,例如,执行前后的统计信息,提高或降低性能的语句。这样,你就在测试环境中先进行更改,以确定数据库升级是否会影响SQL性能。 SQL 性能分析器可用于预测和防止会影响SQL 执行计划结构的任何数据库环境更改所带来的潜在性能问题。这些更改可以包括(但不限于)以下任何一种更改: 数据库升级 实施优化建议 更改方案 收集统计信息 更改数据库参数 更改操作系统和硬件 SQL 性能分析器是11g的新功能,通过相关的配置可以应用在Oracle 9i升级到10g的过程中,大致的框架如下: 先收集9i数据库的上的sql trace信息(需要涵盖关键业务的SQL),然后在11g数据库上生成STS(SQL T uning Set)和SQL统计信息,接着把这些SQL通过数据库链连接到10g 数据库上运行并把统计信息返回到11g库上,最后对每条SQL生成9i和10g上的对比报告,从这个报告便能发现SQL性能是否改善,执行计划有没有改变。 SPA实施步骤 9i库上收集必要的trace信息 根据现场提供的信息,我们在9i的数据库选取典型的会话收集trace信息。比如我们选择进程号是23287的会话进行跟踪: oradebug setospid 23287 oradebug unlimit oradebug event 10046 trace name context forever,level 4 关闭跟踪: oradebug setospid 23287 oradebug event 10046 trace name context off 还可以使用其他方法: 使用dbms_support跟踪数据库session @?/rdbms/admin/dbmssupp exec DBMS_SUPPORT.START_TRACE_IN_SESSION( SID, waits=true, binds=false ); exec DBMS_SUPPORT.STOP_TRACE_IN_SESSION( SID , null ); 生成整个系统trc alter system set events 10046 trace name context forever,level 12; alter system set events 10046 trace name context off; 在9i数据库通过选取特定模块的会话进行跟踪,由于会产生大量的trc,考虑到磁盘空间的问题,建议指定user_dump_dest目录到剩余空间较多的文件系统, 设置下列参数: timed_statistics=TRUE max_dump_file_size=UNLIMITED。 创建10g测试环境 10g测试环境版本必须是10.2.0.2以后的版本。SPA支持模式执行9i中的SQL,所以不会对数据做任何的改动,对目前的生产环境的性能几乎没有影响。 另外,为了实现SPA的功能,需要安装相关的补丁,还要安装JAVAVM等组件。 (补丁参考Note:560977.1,组件参考Note:276554.1)。 10g的CBO优化器依赖于表的统计信息, 如果没有统计信息将会动态采样,动态采样对SQL性能和系统的资源有很大的影响,所以必须收集统计信息。 安装相关的组件在10.2版本的数据库(补丁参考Note: 276554.1) 安装JAVA VM @?/javavm/install/initjvm.sql; 创建DBMS_XQUERYINT @?/rdbms/admin/initxqry.sql 创建OXQServer.class @?/rdbms/admin/initxml.sql 授予SYSTEM用户权限: grant execute on DBMS_SQLPA to system

文档评论(0)

1亿VIP精品文档

相关文档