Oracle SQLT
Amazon RDS 透過使用 SQLT 選項來支援 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 和 SQL*Plus 檔案的集合,這些檔案收集、儲存並顯示效能資料。
以下是每個 SQLT 版本支援的 Oracle 版本。
| SQLT 版本 | Oracle Database 21c | Oracle 資料庫 19c |
|---|---|---|
|
2018-07-25.v1 |
支援 |
支援 |
|
2018-03-31.v1 |
不支援 |
不支援 |
|
2016-04-29.v1 |
不支援 |
不支援 |
若要下載 SQLT 並取得使用的說明:
登入您的「我的 Oracle 支援」帳戶,並開啟下列文件:
若要下載 SQLT:文件 215187.1
關於 SQLT 使用指示:文件 1614107.1
關於 SQLT 的常見問答集:文件 1454160.1
有關如何閱讀 SQLT 輸出的相關資訊:文件 1456176.1
如需解譯主要報告:文件 1922234.1
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_TSRDS_TEMP_SQLT_TS
如果您的資料庫執行個體有這些資料表空間,請使用 SQL 用戶端登入資料庫執行個體,然後捨棄這些資料表空間。
SQLT 選項設定
SQLT 可以搭配「Oracle 調校套件」和「Oracle 診斷套件」所提供的授權功能來使用。Oracle 調校套件包含 SQL Tuning Advisor,Oracle 診斷套件包含「自動工作負載儲存區域」。SQLT 設定可允許或禁止從 SQLT 存取這些功能。
Amazon RDS 支援 SQLT 選項的下列設定。
| 選項設定 | 有效值 | 預設值 | 描述 |
|---|---|---|---|
|
|
|
|
您想要透過 SQLT 來存取的 Oracle 管理套件。輸入下列其中一個值:
注意Amazon RDS 不提供這些 Oracle 管理套件的授權。如果您指出想要使用的套件不在資料庫執行個體中,您可以對資料庫執行個體使用 SQLT。不過,SQLT 無法存取此套件,而 SQLT 報告也不含此套件的資料。例如,若您指定 |
|
|
|
|
您要安裝的 SQLT 版本。 注意對於 Oracle Database 19c 和 21c,唯一支援的版本是 |
新增 SQLT 選項
下列是將 SQLT 選項新增至資料庫執行個體的一般程序:
建立新的選項群組,或是複製或修改現有選項群組。
將 SQLT 選項新增至選項群組。
將選項群組與資料庫執行個體建立關聯。
在新增 SQLT 選項之後,只要選項群組為作用中,SQLT 就立即變成作用中。
將 SQLT 選項新增至資料庫執行個體
-
判斷要使用的選項群組。您可以建立新的選項群組或使用現有的選項群組。如果您要使用現有的選項群組,請跳到下一個步驟。否則請使用下列設定來建立自訂資料庫選項群組:
-
針對 Engine (引擎),選擇您想要使用的 Oracle 版本。所有版本都支援 SQLT 選項。
-
針對 Major engine version (主要引擎版本),請選擇您資料庫執行個體的版本。
如需更多詳細資訊,請參閱 建立選項群組。
-
-
將 SQLT 選項新增至選項群組。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。
-
將選項群組套用至新的或現有的資料庫執行個體:
-
針對新的資料庫執行個體,您會在啟動執行個體時套用選項群組。如需更多詳細資訊,請參閱 建立 Amazon RDS 資料庫執行個體。
-
針對現有的資料庫執行個體,您可以透過修改執行個體並附加新的選項群組來套用選項群組。如需更多詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體。
-
-
(選用) 在每一個含有 SQLT 選項的資料庫執行個體上驗證 SQLT 安裝。
以主要使用者身分使用 SQL 用戶端來連接到資料庫執行個體。
如需使用 SQL 用戶端連接至 Oracle 資料庫執行個體的相關資訊,請參閱連線至 Oracle 資料庫執行個體。
執行下列查詢:
SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;該查詢會傳回 Amazon RDS 上 SQLT 選項的目前版本。
12.1.160429即為 Amazon RDS 上可用 SQLT 版本的範例。
變更 SQLT 選項所建立之使用者的密碼。
以主要使用者身分使用 SQL 用戶端來連接到資料庫執行個體。
執行下列 SQL 陳述式來變更
SQLTXADMIN使用者的密碼:ALTER USER SQLTXADMIN IDENTIFIED BYnew_passwordACCOUNT UNLOCK;注意
指定此處所顯示提示以外的密碼,作為安全最佳實務。
執行下列 SQL 陳述式來變更
SQLTXPLAIN使用者的密碼:ALTER USER SQLTXPLAIN IDENTIFIED BYnew_passwordACCOUNT UNLOCK;注意
指定此處所顯示提示以外的密碼,作為安全最佳實務。
注意
升級 SQLT 需要先解除安裝舊版的 SQLT,然後安裝新版本。因此,升級 SQLT 時會遺失所有 SQLT 中繼資料。資料庫的主要版本升級也會解除安裝並重新安裝 SQLT。例如,從 Oracle Database 19c 升級至 Oracle Database 21c 即為主要版本升級。
使用 SQLT
SQLT 可搭配 Oracle SQL*Plus 公用程式一起使用。
使用 SQLT
從「我的 Oracle 支援」網站上的文件 215187.1
下載 SQLT .zip 檔案。 注意
您無法從「我的 Oracle 支援」網站下載 SQLT 12.1.160429。Oracle 已廢除這個較舊的版本。
解壓縮 SQLT .zip 檔案。
從命令列提示字元中,切換到檔案系統上的
sqlt/run目錄。從命令提示字元中,開啟 SQL*Plus,並以主要使用者身分連接到資料庫執行個體。
如需使用 SQL*Plus 連接到資料庫執行個體的相關資訊,請參閱連線至 Oracle 資料庫執行個體。
取得 SQL 陳述式的 SQL ID:
SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';輸出類似如下:
SQL_ID ------------- chvsmttqjzjkn使用 SQLT 來分析 SQL 陳述式:
START sqltxtract.sqlsql_idsqltxplain_user_password例如,若為 SQL ID
chvsmttqjzjkn,請輸入下列陳述式:START sqltxtract.sql chvsmttqjzjknsqltxplain_user_passwordSQLT 會在執行 SQLT 命令的目錄中產生 HTML 報告及相關的資源,並全部壓縮成一個 .zip 檔案。
(選用) 若要讓應用程式使用者利用 SQLT 來診斷 SQL 陳述式,請執行下列陳述式,將
SQLT_USER_ROLE授予每個應用程式使用者:GRANT SQLT_USER_ROLE TOapplication_user_name;注意
Oracle 不建議以
SYS使用者或具備DBA角色的使用者來執行 SQLT。最好將SQLT_USER_ROLE授予應用程式使用者,再以應用程式使用者的帳戶來執行 SQLT 診斷。
升級 SQLT 選項
使用 Amazon RDS for Oracle 之後,可以將 SQLT 選項從您現有的版本升級到更新版本。若要升級 SQLT 選項,請為新版 SQLT 完成 使用 SQLT 中的步驟 1–3。另外,如果您在該節的步驟 7 中授予舊版 SQLT 的權限,請再次對於新版 SQLT 授予該權限。
升級 SQLT 選項會導致失去舊版 SQLT 的中繼資料。舊版 SQLT 的結構描述和相關物件都會被捨棄,並安裝較新版的 SQLT。如需 SQLT 最新版變更的詳細資訊,請參閱「My Oracle Support」網站上的文件 1614201.1
注意
不支援版本降級。
修改 SQLT 設定
在啟用 SQLT 之後,您可以修改該選項的 LICENSE_PACK 和 VERSION 設定。
如需如何修改選項設定的詳細資訊,請參閱修改選項設定。如需每項設定的詳細資訊,請參閱SQLT 選項設定。
移除 SQLT 選項
您可以從資料庫執行個體中移除 SQLT。
若要從資料庫執行個體中移除 SQLT,請執行下列其中一個動作:
-
若要從多個資料庫執行個體中移除 SQLT,請從資料庫執行個體所屬的選項群組中移除 SQLT 選項。此變更會影響使用選項群組的所有資料庫執行個體。如需更多詳細資訊,請參閱 從選項群組移除選項。
-
若要從單一資料庫執行個體中移除 SQLT,請修改資料庫執行個體,並指定不包括 SQLT 選項的不同選項群組。您可以指定預設的 (空白) 選項群組或不同的自訂選項群組。如需詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體。