Oracle SQLT - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Oracle SQLT

Amazon 透過使用 SQLT選項來RDS支援 Oracle SQLTXPLAIN(SQLT)。您可以SQLT搭配任何版本的 Oracle Database 19c 及更高版本使用 。

Oracle EXPLAIN PLAN陳述式可以判斷SQL陳述式的執行計畫。它可以驗證 Oracle 最佳化工具是否選擇特定的執行計劃,例如巢狀迴圈聯結。還可協助您了解最佳化工具的決策,例如,為何選擇巢狀迴圈聯結,而非雜湊聯結。因此,EXPLAIN PLAN 協助您了解陳述式的效能。

SQLT 是產生報告的 Oracle 公用程式。此報告包含物件統計資料、物件中繼資料、最佳化工具相關初始化參數,以及資料庫管理員可用來調整SQL陳述式以獲得最佳效能的其他資訊。SQLT 會產生HTML報告,其中包含報告中所有區段的超連結。

與自動工作負載儲存庫或 Statspack 報告不同, SQLT適用於個別SQL陳述式。SQLT 是 SQL、PL/ 和 SQL*Plus 檔案的集合SQL,可收集、儲存和顯示效能資料。

以下是每個版本的支援 Oracle SQLT版本。

SQLT 版本 Oracle Database 21c Oracle 資料庫 19c

2018-07-25.v1

支援

支援

2018-03-31.v1

不支援

不支援

2016-04-29.v1

不支援

不支援

若要下載SQLT和存取使用指示:

Amazon RDS 不支援下列SQLT方法:

  • XPLORE

  • XHUME

SQLT 的先決條件

以下是使用 的先決條件SQLT:

  • 如果使用者和角色存在SQLT,您必須移除 所需的使用者和角色。

    SQLT 此選項會在資料庫執行個體上建立下列使用者和角色:

    • SQLTXPLAIN 使用者

    • SQLTXADMIN 使用者

    • SQLT_USER_ROLE 角色

    如果您的資料庫執行個體具有任何這些使用者或角色,請使用SQL用戶端登入資料庫執行個體,並使用下列陳述式將其捨棄:

    DROP USER SQLTXPLAIN CASCADE; DROP USER SQLTXADMIN CASCADE; DROP ROLE SQLT_USER_ROLE CASCADE;
  • 如果資料表空間存在SQLT,您必須移除 所需的資料表空間。

    SQLT 選項會在資料庫執行個體上建立下列資料表空間:

    • RDS_SQLT_TS

    • RDS_TEMP_SQLT_TS

    如果您的資料庫執行個體具有這些資料表空間,請使用SQL用戶端登入資料庫執行個體,然後捨棄它們。

SQLT 選項設定

SQLT 可以使用 Oracle Tuning Pack 和 Oracle Diagnostics Pack 提供的授權功能。Oracle 調校套件包含 SQL Tuning Advisor,而 Oracle Diagnostics Pack 包含自動工作負載儲存庫。SQLT 設定會啟用或停用從 存取這些功能SQLT。

Amazon RDS支援 SQLT選項的下列設定。

選項設定 有效值 預設值 描述

LICENSE_PACK

T, D, N

N

您要透過 存取的 Oracle 管理套件SQLT。輸入下列其中一個值:

  • T 表示您擁有 Oracle Tuning Pack 和 Oracle Diagnostics Pack 的授權,而且您想要從 存取 SQL Tuning Advisor 和自動工作負載儲存庫SQLT。

  • D 表示您擁有 Oracle Diagnostics Pack 的授權,而且想要從 存取自動工作負載儲存庫SQLT。

  • N 表示您沒有 Oracle Tuning Pack 和 Oracle Diagnostics Pack 的授權,或者您有一個或兩個授權,但您不想SQLT存取它們。

注意

Amazon RDS不會為這些 Oracle Management Packs 提供授權。如果您表示想要使用未包含在資料庫執行個體中的套件,則可以SQLT搭配資料庫執行個體使用 。但是, SQLT 無法存取套件,且SQLT報告不包含套件的資料。例如,如果您指定 T,但資料庫執行個體不包含 Oracle 調校套件, 會在資料庫執行個體上SQLT運作,但其產生的報告不包含與 Oracle 調校套件相關的資料。

VERSION

2016-04-29.v1

2018-03-31.v1

2018-07-25.v1

2016-04-29.v1

您要安裝SQLT的 版本。

注意

對於 Oracle Database 19c 和 21c,唯一支援的版本是 2018-07-25.v1。此版本是這些版本的預設版本。

新增 SQLT 選項

以下是將 SQLT 選項新增至資料庫執行個體的一般程序:

  1. 建立新的選項群組,或是複製或修改現有選項群組。

  2. 將SQLT選項新增至選項群組。

  3. 將選項群組與資料庫執行個體建立關聯。

新增SQLT選項後,一旦選項群組處於作用中狀態, SQLT就會處於作用中狀態。

若要將 SQLT選項新增至資料庫執行個體
  1. 判斷要使用的選項群組。您可以建立新的選項群組或使用現有的選項群組。如果您要使用現有的選項群組,請跳到下一個步驟。否則請使用下列設定來建立自訂資料庫選項群組:

    1. 針對 Engine (引擎),選擇您想要使用的 Oracle 版本。所有版本都支援SQLT此選項。

    2. 針對 Major engine version (主要引擎版本),請選擇您資料庫執行個體的版本。

    如需詳細資訊,請參閱建立選項群組

  2. SQLT選項新增至選項群組。如需新增選項的詳細資訊,請參閱將選項新增至選項群組

  3. 將選項群組套用至新的或現有的資料庫執行個體:

  4. (選用) 使用 SQLT選項驗證每個資料庫執行個體上的SQLT安裝。

    1. 使用SQL用戶端以主要使用者身分連線至資料庫執行個體。

      如需使用SQL用戶端連線至 Oracle 資料庫執行個體的相關資訊,請參閱 連線至 Oracle 資料庫執行個體

    2. 執行下列查詢:

      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;

      查詢會傳回 Amazon 上 SQLT選項的目前版本RDS。 12.1.160429 是 Amazon 上SQLT可用版本的範例RDS。

  5. 變更 SQLT選項建立的使用者密碼。

    1. 使用SQL用戶端以主要使用者身分連線至資料庫執行個體。

    2. 執行下列SQL陳述式以變更SQLTXADMIN使用者的密碼:

      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      注意

      指定此處所顯示提示以外的密碼,作為安全最佳實務。

    3. 執行下列SQL陳述式以變更SQLTXPLAIN使用者的密碼:

      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      注意

      指定此處所顯示提示以外的密碼,作為安全最佳實務。

注意

升級SQLT需要解除安裝舊版 ,SQLT然後安裝新版本。因此,升級 時,所有SQLT中繼資料都可能遺失SQLT。資料庫的主要版本升級也會解除安裝並重新安裝 SQLT。主要版本升級的範例是從 Oracle Database 19c 升級到 Oracle Database 21c。

使用 SQLT

SQLT 適用於 Oracle SQL*Plus 公用程式。

若要使用 SQLT
  1. 從 My Oracle Support SQLT 網站上的文件 215187.1 下載 .zip 檔案。

    注意

    您無法從 My Oracle Support 網站下載 SQLT 12.1.160429。Oracle 已廢除這個較舊的版本。

  2. 解壓縮 SQLT .zip 檔案。

  3. 從命令列提示字元中,切換到檔案系統上的 sqlt/run 目錄。

  4. 從命令提示中,開啟 SQL*Plus,並以主要使用者身分連線至資料庫執行個體。

    如需使用 SQL*Plus 連線至資料庫執行個體的資訊,請參閱 連線至 Oracle 資料庫執行個體

  5. 取得SQL陳述式的 SQL ID:

    SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';

    輸出類似如下:

    SQL_ID ------------- chvsmttqjzjkn
  6. 使用 分析SQL陳述式SQLT:

    START sqltxtract.sql sql_id sqltxplain_user_password

    例如,針對 SQL ID chvsmttqjzjkn,輸入下列內容:

    START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password

    SQLT 在執行SQLT命令的目錄中, 會以 .zip 檔案產生HTML報告和相關資源。

  7. (選用) 若要讓應用程式使用者使用 診斷SQL陳述式SQLT,請使用下列陳述式SQLT_USER_ROLE授予每個應用程式使用者:

    GRANT SQLT_USER_ROLE TO application_user_name;
    注意

    Oracle 不建議SQLT搭配 SYS使用者或具有 DBA角色的使用者執行 。最佳實務是將 授予應用程式使用者,以使用應用程式使用者帳戶執行SQLT診斷SQLT_USER_ROLE

升級 SQLT選項

使用 Amazon RDS for Oracle,您可以將SQLT選項從現有版本升級至更高版本。若要升級 SQLT 選項,請完成新版本 使用 SQLT中的步驟 1–3SQLT。此外,如果您在該區段的步驟 7 SQLT中授予先前版本 的權限,請再次授予新SQLT版本的權限。

升級 SQLT選項會導致舊版SQLT中繼資料遺失。較舊SQLT版本的結構描述和相關物件會捨棄,並SQLT安裝較新的 版本。如需有關SQLT最新版本變更的詳細資訊,請參閱 My Oracle Support 網站上的文件 1614201.1

注意

不支援版本降級。

修改SQLT設定

啟用 之後SQLT,您可以修改 選項的 LICENSE_PACKVERSION設定。

如需如何修改選項設定的詳細資訊,請參閱修改選項設定。如需每項設定的詳細資訊,請參閱SQLT 選項設定

移除 SQLT 選項

您可以從資料庫執行個體中移除 SQLT 。

若要SQLT從資料庫執行個體中移除 ,請執行下列其中一項操作:

  • 若要SQLT從多個資料庫執行個體中移除 SQLT選項,請從資料庫執行個體所屬的選項群組中移除 選項。此變更會影響使用選項群組的所有資料庫執行個體。如需詳細資訊,請參閱從選項群組移除選項

  • 若要SQLT從單一資料庫執行個體中移除 ,請修改資料庫執行個體,並指定不包含 選項的不同SQLT選項群組。您可以指定預設的 (空白) 選項群組或不同的自訂選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體