- 最后登录
- 2012-8-29
- 在线时间
- 1 小时
- 威望
- 9
- 金钱
- 43
- 注册时间
- 2012-7-8
- 阅读权限
- 10
- 帖子
- 8
- 精华
- 0
- 积分
- 9
- UID
- 578
|
1#
发表于 2012-8-14 23:20:30
|
查看: 5450 |
回复: 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来稳定计划。
请熟悉的兄弟姐妹们也来帮忙出点子啊!谢谢! |
|