unloaded Starting "SYS"."SYS_IMPORT_TABLE_01": "/******** AS SYSDBA" DUMPFILE=STGTAB_SQLSET.dmp DIRECTORY=DATA_PUMP_DIR TABLES=ITSM.STGTAB_SQLSET REMAP_SCHEMA=ITSM:SYSTEM Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/TABLE_DATA . . imported "SYSTEM"."STGTAB_SQLSET_CPLANS" 481.9 KB 934 rows . . imported "SYSTEM"."STGTAB_SQLSET" 152.6 KB 61 rows . . imported "SYSTEM"."STGTAB_SQLSET_CBINDS" 9.523 KB 0 rows Job "SYS"."SYS_IMPORT_TABLE_01" successfully completed at 15:17:02 1.7. 在测试库解压中转表的数据到STS SQL> EXEC DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET(sqlset_name=>'sql_test',replace=>true ,staging_table_name=>'STGTAB_SQLSET',staging_schema_owner => 'SCOTT'); PL/SQL procedure successfully completed. 2. 创建SPA任务 2.1. 在测试库创建一个SPA任务 SQL> variable sts_task VARCHAR2(64); SQL> exec :sts_task:=DBMS_SQLPA.CREATE_ANALYSIS_TASK(sqlset_name=>'sql_test',task_name=>'spa_task1'); / PL/SQL procedure successfully completed 3. 分析更改前SQL工作负载 现实环境中,通常源库和测试库的版本至少差一个版本,比如源库可能是10.2版本,而测试库版本是11G,如果源库的版本是10G,需要在测试库将参数:optimizer_features_enable 设置为10.2.0,将此参数设置为此10.2.0后,生成的性能数据就是升级前的数据了. SQL> alter SYSTEM SET optimizer_features_enable = '10.2.0.3'; SQL> exec DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name=>'spa_task1',execution_type=>'test execute',execution_name=>'before_change'); PL/SQL procedure successfully completed. 一定注意黄色部分,test 和 execute 之前不是下划线,而是空格. 4. 分析升级后的sql工作负载 SQL> alter SYSTEM SET optimizer_features_enable = '11.2.0.3'; SQL> exec DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name=>'spa_task1',execution_type=>'test execute',execution_name=>'after_change'); PL/SQL procedure successfully completed. 5. 比较SQL性能 5.1. 为了比较升级前和升级后SQL性能,需要第三次执行EXECUTE_ANALYSIS_TASK过程. SQL> exec DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name=>'spa_task1',execution_type=>'compare performance'); PL/SQL procedure successfully completed. 5.2. 生成SPA报表 SQL> variable report1 clob; SQL> exec :report1 := DBMS_SQLPA.REPORT_ANALYSIS_TASK(task_name=>'spa_task1',type=>'text',level=>'typical',section=>'summary'); PL/SQL procedure successfully completed. SQL> SQL> set long 100000 longchunksize 100000 linesize 120 SQL> print :report1 REPORT1 ------------------------------------------------------------------------------------------------------------------------ General Information --------------------------------------------------------------------------------------------- Task Information: Workload Information: --------------------------------------------- --------------------------------------------- Task Name : spa_task1 SQL Tuning Set Name : sql_test Task Owner : SYS SQL Tuning Set Owner : SYS Description : Total SQL Statement Count : 73 Execution Information: --------------------------------------------------------------------------------------------- Execution Name : EXEC_1642 Started : 01/22/2014 16:27:23 Execution Type : COMPARE PERFORMANCE Last Updated : 01/22/2014 16:27:23 Description : Global Time Limit : UNLIMITED Scope : COMPREHENSIVE Per-SQL Time Limit : UNUSED Status : COMPLETED Number of Errors : 0 Number of Unsupported SQL : 11 Analysis Information: --------------------------------------------------------------------------------------------- Before Change Execution: After Change Execution: --------------------------------- |