[20120806]11G SPM的學習4.txt
[20120806]11G SPM的學習4.txt
繼續上面的學習:
為了遷移時保持執行計劃的穩定,可以把原來儲存的基線遷移到新系統上來。
一下僅僅是為了測試:
1.儲存基線到表檔案中。
--可以發現已經匯入了2條記錄。
3.匯入sql baselines:
由於我的測試環境僅僅一臺機器,必須刪除前面建立的sql baselines;
SQL> select sql_handle, plan_name, enabled, accepted,fixed,autopurge,origin,signature from dba_sql_plan_baselines ;
--匯入sql baselines:
--可以透過如下方式成功遷移,保證執行計劃的穩定。
繼續上面的學習:
SQL> select * from v$version ;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
create table t as select rownum id , cast(dbms_random.string('a',6 ) as varchar2(10)) name from dual connect by level <=1e5;
--分析表
BEGIN
SYS.DBMS_STATS.GATHER_TABLE_STATS (
OwnName => user
,TabName => 'T'
,Estimate_Percent => NULL
,Method_Opt => 'FOR ALL COLUMNS SIZE 1 '
,Degree => 4
,Cascade => TRUE
,No_Invalidate => TRUE);
END;
/
--建立sql plan baseline,忽略...
create index i_t_id on t(id);
select sql_handle, plan_name, enabled, accepted,fixed,origin,signature from dba_sql_plan_baselines ;
--為了後面能操作比較快,我定義如下變數:variable v_sql_handle varchar2(30);variable v_plan_name_full varchar2(30);variable v_plan_name_index varchar2(30);exec :v_sql_handle := 'SYS_SQL_a45a9e109f85e5a4'exec :v_plan_name_full := 'SQL_PLAN_a8qny22gsbtd494ecae5c'exec :v_plan_name_index := 'SQL_PLAN_a8qny22gsbtd40893a4b2'
為了遷移時保持執行計劃的穩定,可以把原來儲存的基線遷移到新系統上來。
一下僅僅是為了測試:
1.儲存基線到表檔案中。
SQL> select sql_handle, plan_name, enabled, accepted,fixed,autopurge,origin,signature from dba_sql_plan_baselines ;
SQL_HANDLE PLAN_NAME ENA ACC FIX AUT ORIGIN SIGNATURE
------------------------------ ------------------------------ --- --- --- --- -------------- -----------------------
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd40893a4b2 YES NO NO YES AUTO-CAPTURE 11842951964357158308
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd494ecae5c YES YES NO YES MANUAL-LOAD 11842951964357158308
SQL> exec :v_report := DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE(sql_handle => :v_sql_handle);
PL/SQL procedure successfully completed.
SQL> select sql_handle, plan_name, enabled, accepted,fixed,autopurge,origin,signature from dba_sql_plan_baselines ;
SQL_HANDLE PLAN_NAME ENA ACC FIX AUT ORIGIN SIGNATURE
------------------------------ ------------------------------ --- --- --- --- -------------- -----------------------
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd40893a4b2 YES YES NO YES AUTO-CAPTURE 11842951964357158308
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd494ecae5c YES YES NO YES MANUAL-LOAD 11842951964357158308
SQL> exec dbms_spm.create_stgtab_baseline('t_base',user);
PL/SQL procedure successfully completed.--這樣就建立了sql baselines的表檔案。
SQL> select * from t_base ;
no rows selected
2.匯出sql baselines:
variable v_basenum number ;
exec :v_basenum := dbms_spm.pack_stgtab_baseline('t_base',user,:v_sql_handle);
SQL> select count(*) from t_base;
COUNT(*)
----------
2
--可以發現已經匯入了2條記錄。
3.匯入sql baselines:
由於我的測試環境僅僅一臺機器,必須刪除前面建立的sql baselines;
SQL> select sql_handle, plan_name, enabled, accepted,fixed,autopurge,origin,signature from dba_sql_plan_baselines ;
SQL_HANDLE PLAN_NAME ENA ACC FIX AUT ORIGIN SIGNATURE
------------------------------ ------------------------------ --- --- --- --- -------------- -----------------------
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd40893a4b2 YES YES NO YES AUTO-CAPTURE 11842951964357158308
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd494ecae5c YES YES NO YES MANUAL-LOAD 11842951964357158308
exec :v_basenum := DBMS_SPM.drop_sql_plan_baseline (sql_handle => :v_sql_handle,plan_name => :v_plan_name_index);
exec :v_basenum := DBMS_SPM.drop_sql_plan_baseline (sql_handle => :v_sql_handle,plan_name => :v_plan_name_full);
SQL> select sql_handle, plan_name, enabled, accepted,fixed,autopurge,origin,signature from dba_sql_plan_baselines ;
no rows selected
--匯入sql baselines:
exec :v_basenum := dbms_spm.unpack_stgtab_baseline('t_base',user,:v_sql_handle);
SQL> select sql_handle, plan_name, enabled, accepted,fixed,autopurge,origin,signature from dba_sql_plan_baselines ;
SQL_HANDLE PLAN_NAME ENA ACC FIX AUT ORIGIN SIGNATURE
------------------------------ ------------------------------ --- --- --- --- -------------- -----------------------
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd40893a4b2 YES YES NO YES AUTO-CAPTURE 11842951964357158308
SYS_SQL_a45a9e109f85e5a4 SQL_PLAN_a8qny22gsbtd494ecae5c YES YES NO YES MANUAL-LOAD 11842951964357158308
--可以透過如下方式成功遷移,保證執行計劃的穩定。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-740024/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20120806]11G SPM的學習3.txt
- [20120805]11G SPM的學習2.txt
- [20120807]11G SPM的學習5.txt--第3方優化優化
- [20120830]11G SPM的學習6.txt--第3方優化.txt優化
- ORACLE 11G 使用SPM來調整SQL語句的執行計劃OracleSQL
- 對ORACLE Database 11g RAC的學習感受。。OracleDatabase
- [20150430]11G SPM與cardinality feedback2
- 11g文件學習----sql連線SQL
- SQL Plan Management(SPM)SQL
- 【SPM】Oracle計劃管理器SPM介紹及用例Oracle
- 11g文件學習----sysdba sysoper OSDBA OSOPER
- 天天學習ORACLE(三)-11G新特性Oracle
- SPM適用的場景和示例
- [20210521]11g shared pool latch與library cache mutex的簡單探究4.txtMutex
- 11g文件學習2----建立資料庫資料庫
- centOS學習part6:安裝oracle 11gCentOSOracle
- 11g文件學習1----安裝Oracle軟體Oracle
- Oracle Text 學習筆記(11G)<一> :手工建立TEXTOracle筆記
- 11g文件學習3----啟動關閉暫停
- 【SPM】Oracle如何固定執行計劃Oracle
- [20241108]跟蹤library cache lock library cache pin使用gdb(11g)4.txt
- spark RDD的學習,filter函式的學習,split函式的學習SparkFilter函式
- SQL大致流程、SPM、軟軟、軟、硬解析SQL
- (原)汽車行業ERP要求四:SPM行業
- 學習學習再學習
- 用spm2構建seajs專案的過程JS
- [20210914]探究mutex的值 4.txtMutex
- ORACLE 通過SPM為SQL語句加HINTOracleSQL
- SPM設定保留空間和保留時效
- [20170621]Session Cursor Caching 4.txtSession
- 10g/11g/12c RMAN學習(final) - show all 4
- centOS學習part5:oracle 11g安裝之環境準備CentOSOracle
- Java入門學習-學習static的用法Java
- 深度學習中tensorflow框架的學習深度學習框架
- [20171225]變態的windows批處理4.txtWindows
- ORACLE 11g dataguard配置練習Oracle
- 學習英語,首先還是要有學習的習慣
- git的學習Git