首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g R2 跨實例移動 SQL Tuning Set (STS) 完整操作指南

     編輯:Oracle 資料庫基礎

背景與痛點

SQL Tuning Set (STS) 是 SQL Tuning Advisor 的輸入載體,包含 SQL 文本、執行計劃、綁定變量等上下文。Oracle 10g R1 要求分析與生產在同一實例,增加生產負擔且需高權限。

10g R2 新功能:STS 跨實例遷移

透過 中轉表 (Staging Table) + DBMS_SQLTUNE 套件,即可將 STS 從生產匯出、導入測試環境分析。

五步驟遷移流程

  1. 建立 STS:
    • Enterprise Manager:從 AWR 快照、保存快照集、SQL 歷史期間建立。
    • PL/SQL:DBMS_SQLTUNE.CREATE_SQLSET、LOAD_SQLSET 手動建立。
  2. 建立中轉表:
    EXEC DBMS_SQLTUNE.CREATE_STGTAB_SQLSET(
        table_name  => 'STS_STAGING_TABLE',
        schema_name => 'SCOTT'
    );
    
  3. 匯出 STS 至中轉表:
    EXEC DBMS_SQLTUNE.PACK_STGTAB_SQLSET(
        sqlset_name      => 'MY_SQL_TUNING_SET',
        sqlset_owner     => 'SCOTT',
        staging_table_name => 'STS_STAGING_TABLE',
        staging_schema_owner => 'SCOTT'
    );
    
  4. 移動中轉表:
    • Data Pump 匯出/匯入 (expdp/impdp)。
    • Database Link + INSERT ... SELECT。
    • 傳統 exp/imp。
  5. 目標端匯入 STS:
    EXEC DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET(
        sqlset_name      => 'MY_SQL_TUNING_SET',
        sqlset_owner     => 'SCOTT',
        replace          => TRUE,
        staging_table_name => 'STS_STAGING_TABLE',
        staging_schema_owner => 'SCOTT'
    );
    

    匯入後即可在目標實例使用 EM 或 DBMS_SQLTUNE 進行調優分析。

關鍵優勢

  • 生產環境零負擔分析。
  • 開發/測試環境無需高權限存取生產數據。
  • 支援跨版本、跨平台遷移 (同主版本)。

參考文獻

《Oracle Database Performance Tuning Guide》第 "Transporting SQL Tuning Sets" 章節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved