-
SQLT 概覽 -
安全模式
-
安裝
SQLT -
卸載
SQLT -
升級(jí)
SQLT -
常見問題
-
上傳SQLT文件給Oracle技術(shù)支持
|
|
主要方法
-
XTRACT
-
XECUTE
-
XTRXEC
-
XPLAIN
-
XTRSBY
-
XPREXT
-
XPREXC
|
|
特殊方法
-
COMPARE
-
TRCANLZR
-
TRCAXTR
-
TRCASPLIT
-
XTRSET
|
|
高級(jí)方法和模塊
-
PROFILE
-
XGRAM
-
XPLORE
-
XHUME
|
SQLT 概覽
SQLTXPLAIN,也稱為
SQLT,是 Oracle Server Technologies Center of Expertise - ST CoE 提供的一款工具。
SQLT
主要方法 通過輸入的一個(gè) SQL 語句,可輸出一組診斷文件。這些文件通常用于診斷性能不佳或者產(chǎn)生錯(cuò)誤結(jié)果的 SQL 語句。

創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為牡丹企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,牡丹網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
對于sql語句的調(diào)優(yōu),SQLT 需要您有一些專業(yè)的知識(shí)來進(jìn)行分析。對于許多問題來說我們推薦首先使用SQL Health Check 來檢查您的SQL,假如不能解決再嘗試使用SQLT。SQLHC的詳細(xì)介紹請看:
Document 1366133.1 SQL Tuning Health-Check Script (SQLHC)
一旦
安裝,便可通過向
SQLT 傳遞一個(gè)包含 SQL 語句腳本(包括綁定變量)的文本文件或者其
SQL_ID,對 SQL 語句進(jìn)行分析。SQL_ID 可在 AWR 和 ASH 的報(bào)告中找到,HASH_VALUE 出現(xiàn)在 SQL_TRACE 的輸出中(SQL 文本的上面以"hv="的標(biāo)志來識(shí)別)。您也能在 V$SQL 視圖中發(fā)現(xiàn)這些字段。請參照接下來的文檔:
Document 1627387.1 How to Determine the SQL_ID for a SQL Statement
SQLT
主要方法 會(huì)連接到數(shù)據(jù)庫,收集執(zhí)行計(jì)劃、基于成本的 Optimizer CBO 統(tǒng)計(jì)信息、Schema 對象元數(shù)據(jù)、性能統(tǒng)計(jì)信息、配置參數(shù)和會(huì)影響正在分析的 SQL 性能的其他元素。這些方法會(huì)對有問題的SQL_ID產(chǎn)生一攬子輸出,包括一個(gè)html格式的"main"報(bào)表。關(guān)于如何使用"main"報(bào)表,您可以參考下面的文檔:
Document 1922234.1 SQLT Main Report: Usage Suggestions
SQLT 可以使用 Oracle Diagnostic 和(或)Oracle Tuning Packs,前提是您的數(shù)據(jù)庫需要具有這兩個(gè)軟件包的許可證。這兩個(gè)軟件包向
SQLT 工具提供了增強(qiáng)的功能。在
SQLT 安裝期間,您可以指定是否其中一個(gè)軟件包在您的數(shù)據(jù)庫被授權(quán)使用。如果一個(gè)都沒有,
SQLT 仍會(huì)提供一些基本信息,用于最開始的 SQL 性能診斷。
安全模式
SQLT 在
安裝的過程中會(huì)創(chuàng)建兩個(gè)用戶和一個(gè)角色。這些用戶和角色的名字都是固定的。
SQLT repository 是由用戶
SQLTXPLAIN管理的。
SQLT 的使用者每次使用
SQLT 提供的
主要方法時(shí)都要提供
SQLTXPLAIN 的密碼。
SQLTXPLAIN 用戶被賦予了以下系統(tǒng)權(quán)限:
- CREATE SESSION
- CREATE TABLE
SQLT 包含的 PL/SQL 程序包以及視圖都是由用戶
SQLTXADMIN 管理的。
SQLTXADMIN 用戶處于鎖定狀態(tài)并且由一個(gè)隨機(jī)產(chǎn)生的密碼保護(hù)。
SQLTXADMIN 用戶被賦予了以下系統(tǒng)權(quán)限:
- ADMINISTER SQL MANAGEMENT OBJECT
- ADMINISTER SQL TUNING SET
- ADVISOR
- ALTER SESSION
- ANALYZE ANY
- SELECT ANY DICTIONARY
- SELECT_CATALOG_ROLE
所有
SQLT 的使用者在使用
SQLT 提供的
主要方法之前必須被賦予
SQLT_USER_ROLE 這個(gè)角色。
SQLT_USER_ROLE 角色被賦予了以下系統(tǒng)權(quán)限:
- ADVISOR
- SELECT_CATALOG_ROLE
12c 在缺省情況下 SYS 用戶不能作為
SQLT 的用戶,因?yàn)?PL/SQL 安全模型上改變的原因。
為了處理這個(gè)改變,
SQLTADMIN 需要在 SYS 上被授予
INHERIT PRIVILEGES 權(quán)限。
GRANT INHERIT PRIVILEGES ON USER SYS TO SQLTXADMIN
更多詳細(xì)的內(nèi)容請參見 Oracle? Database PL/SQL Language Reference 12c Release 1 (12.1) - Invoker's Rights and Definer's Rights (AUTHID Property) and in Oracle? Database Security Guide 12c Release 1 (12.1) - Managing Security for Definer's Rights and Invoker's Rights
安裝
SQLT
SQLT 安裝在其自己的 schema
SQLTXPLAIN 和
SQLTXADMIN 下。它不會(huì)將任何對象安裝到應(yīng)用程序 schema 中。您可以在 UNIX、Linux 或 Windows 平臺(tái),Oracle DB 10.2、11.1、11.2 及更高版本中安裝此版本的 SQLT。對于所有“應(yīng)用于:”的信息,請參照文檔215187.1。
安裝步驟:
-
卸載先前版(可選)。
該可選步驟將刪除所有廢棄的
SQLTXPLAIN/SQLTXADMIN schema 對象,并為全新安裝準(zhǔn)備環(huán)境。如果要保留 SQLT Repository 的現(xiàn)有內(nèi)容,請?zhí)^此步驟(推薦)。
# cd sqlt/install
# sqlplus / as sysdba
SQL> START sqdrop.sql
- 以
SYS 身份連接數(shù)據(jù)庫并執(zhí)行安裝腳本
sqlt/install/sqcreate.sql。 # cd sqlt/install
# sqlplus / as sysdba
SQL> START sqcreate.sql
在安裝期間,系統(tǒng)將要求您輸入以下參數(shù)值:
- 可選連接標(biāo)識(shí)符(當(dāng)安裝在一個(gè)可插拔數(shù)據(jù)庫上時(shí)是必須的)
在一些受限訪問的系統(tǒng)中,您可能需要指定連接標(biāo)識(shí)符,例如
@PROD。如果不需要連接標(biāo)識(shí)符,則不要輸入任何數(shù)據(jù),只需單擊回車鍵。什么也不鍵入是最常使用的安裝方法。
當(dāng)安裝在一個(gè)可插拔數(shù)據(jù)庫上時(shí)連接標(biāo)識(shí)符是必須提供的。
-
SQLTXPLAIN 密碼。 在大多數(shù)系統(tǒng)中區(qū)分大小寫。
-
SQLTXPLAIN 默認(rèn)表空間。 從可用的永久表空間列表中,選擇
SQLT Repository 的
SQLTXPLAIN 應(yīng)使用的表空間。它必須具有 50MB 以上的可用空間。
-
SQLTXPLAIN 臨時(shí)表空間。 從可用的臨時(shí)表空間列表中,選擇
SQLTXPLAIN 臨時(shí)操作和臨時(shí)對象應(yīng)使用的表空間。
- 可選應(yīng)用程序用戶。
這是發(fā)出要分析 SQL 語句的用戶。例如,在 EBS 系統(tǒng)上,指定為
APPS;在 Siebel 上,應(yīng)指定為 SIEBEL;在 People Soft 上,應(yīng)指定為
SYSADM。系統(tǒng)不會(huì)要求您輸入此用戶的密碼。也可以在安裝該工具后添加其他的
SQLT 用戶,方法為:授予他們角色
SQLT_USER_ROLE。
- 授權(quán)的 Oracle Pack。(T,D 或 N)
可以指定
T 表示 Oracle Tuning;
D 表示 Oracle Diagnostic,或
N 表示都沒有。如果選擇
T 或
D,SQLT 可以在它生成的診斷文件中包含授權(quán)的內(nèi)容。默認(rèn)值為
T。如果選擇
N,SQLT 將只安裝限定的功能。
如果需要靜默安裝,可以使用下面三個(gè)選項(xiàng)來傳遞所有 6 個(gè)安裝參數(shù):
- 在文件中。
首先使用一個(gè)腳本進(jìn)行值的預(yù)先定義,類似于示例腳本
sqlt/install/sqdefparams.sql。然后使用
sqlt/install/sqcsilent.sql,而不是
sqlt/install/sqcreate.sql。
# cd sqlt/install
# sqlplus / as sysdba
SQL> START sqdefparams.sql
SQL> START sqcsilent.sql
- 命令行。
執(zhí)行
sqlt/install/sqcsilent2.sql,而不是
sqlt/install/sqcreate.sql。前者以內(nèi)嵌形式輸入 6 個(gè)安裝參數(shù)。
# cd sqlt/install
# sqlplus / as sysdba
SQL> START sqcsilent2.sql '' sqltxplain USERS TEMP '' T
- 在 Oracle 內(nèi)部安裝。
執(zhí)行
sqlt/install/sqcinternal.sql,而不是
sqlt/install/sqcreate.sql。前者首先執(zhí)行
sqlt/install/sqdefparams.sql,然后是
sqlt/install/sqcsilent.sql。
# cd sqlt/install
# sqlplus / as sysdba
SQL> START sqcinternal.sql
假如您需要更多關(guān)于安裝問題的幫助,您能從下面的論壇得到幫助:
SQLTXPLAIN: SQLT Installation Issues
卸載
SQLT
卸載
SQLT 會(huì)同時(shí)移除
SQLT Repository 以及所有
SQLTXPLAIN/SQLTXADMIN schema 對象。另外還會(huì)刪除
SQLTXPLAIN 和
SQLTXADMIN 用戶。要卸載
SQLT,只需以 SYS 身份連接,執(zhí)行
sqlt/install/sqdrop.sql。
# cd sqlt/install
# sqlplus / as sysdba
SQL> START sqdrop.sql
升級(jí)
SQLT
如果在系統(tǒng)中已安裝先前版本的
SQLT,則可以將
SQLT 升級(jí)到其最新版本,同時(shí)部分保留現(xiàn)有
SQLT Repository 的一些對象。然后可以使用新遷移的
SQLT Repository 來恢復(fù) CBO 統(tǒng)計(jì)信息,或者在
SQLT 的新舊執(zhí)行程序之間執(zhí)行
COMPARE。
要升級(jí)
SQLT,只需執(zhí)行
安裝,而不用執(zhí)行可選
卸載步驟。
如果升級(jí)失敗,可能是先前的
SQLT 版本太舊而無法升級(jí)。在這種情況下,請先繼續(xù)
卸載
SQLT,然后執(zhí)行全新
安裝。