Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

9

积分

0

好友

0

主题
1#
发表于 2012-8-14 23:20:30 | 查看: 5455| 回复: 2
我计划将一个oracle 9.2.0.8的数据库升级到oracle 11.2.0.3,我想使用SQL Performance Analyze来分析SQL的性能变化。
先不要考虑打Real Application Testing补丁的问题,我对一些步骤有些疑问。

在手册上,我找到了如下文档:

http://docs.oracle.com/cd/E11882_01/server.112/e16540/spa_upgrade.htm#CIAIFDIJ
总结了一下步骤:
1、在9i开启10046trace,抓取SQL
2、在9i建立MAP表
3、将9i的生产数据通过exp导出
4、将9i的MAP表通过exp导出
5、在11g建立与9i相同的用户,表空间
6、向11g imp 9i的生产数据
7、向11g imp 9i的MAP表
8、在11g上创建directory object,并将9i生成的trace复制到该目录
9、在11g上生成SQL TUNNING SET
DECLARE
  cur sys_refcursor;
BEGIN
  DBMS_SQLTUNE.CREATE_SQLSET('my_sts_9i');
  OPEN cur FOR
    SELECT VALUE (P)
    FROM table(DBMS_SQLTUNE.SELECT_SQL_TRACE('sql_trace_prod', '%ora%')) P;
  DBMS_SQLTUNE.LOAD_SQLSET('my_sts_9i', cur);
  CLOSE cur;
END;
/
10、在11g上创建指向9i的public db-link
11、在11g上创建
SPA任务(dbms_sqlpa.create_analysis_task)
12、在11g上运行SPA任务(9i)
EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', -
       execution_name => 'my_remote_trial_9i', -
       execution_params => dbms_advisor.arglist('database_link',
                                                'LINK.A.B.C.BIZ.COM'));



13、在11g上运行SPA任务(11g)
EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', -
       execution_name => 'my_local_trial_11g');

14、在11g上运行比较
EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -        execution_type => 'COMPARE PERFORMANCE', -       execution_name => 'my_exec_compare', -       execution_params => dbms_advisor.arglist(-                             'comparison_metric', 'buffer_gets'));

15、出报告
set trimspool on
set trim on
set pages 0
set linesize 1000
set long 1000000
set longchunksize 1000000
spool spa_active.html
SELECT DBMS_SQLPA.REPORT_ANALYSIS_TASK(task_name => 'my_spa_task',
          type => 'active', section => 'all') FROM dual;
spool off
好了,现在我的问题是:
1、以上大体步骤有无错误?
2、以上第1步开trace来捕获SQL形成tuning set,有其他办法了,9i只能用这个么?
3、以上第10,12步是必须的么?加db-link是为了干什么?难道是用9i的优化器参数来执行么?如果是这样,那为什么还要在9i上开trace收集tuning set?直接远程抓不是更好么?
4、以上步骤都执行完了,报告也生成了,接下来干什么?运行SQL Tuning Advisor来接受建议?然后用sql profile稳定计划?
5、该问题是最关键的,刘大你搞过类似的测试么?能贴一个比较靠谱点的完整脚本么?包括出完报告后怎么使用SQL Tuning Advisor来稳定计划。


请熟悉的兄弟姐妹们也来帮忙出点子啊!谢谢!
2#
发表于 2013-4-26 00:32:59
http://www.askmaclean.com/archives/spa-script.html
SQL Performance Analyzer SPA常用脚本汇总

回复 只看该作者 道具 举报

3#
发表于 2014-5-11 21:31:46
同问,最近也有将9i 升级到11.2.0.4的需求

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-21 08:10 , Processed in 0.045460 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569