-
SQLT 概覽 -
安全模式
-
安裝
SQLT -
卸載
SQLT -
升級(jí)
SQLT -
常見問(wèn)題
-
上傳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
主要方法 通過(guò)輸入的一個(gè) SQL 語(yǔ)句,可輸出一組診斷文件。這些文件通常用于診斷性能不佳或者產(chǎn)生錯(cuò)誤結(jié)果的 SQL 語(yǔ)句。
創(chuàng)新互聯(lián)公司長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(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ā)。
對(duì)于sql語(yǔ)句的調(diào)優(yōu),SQLT 需要您有一些專業(yè)的知識(shí)來(lái)進(jìn)行分析。對(duì)于許多問(wèn)題來(lái)說(shuō)我們推薦首先使用SQL Health Check 來(lái)檢查您的SQL,假如不能解決再嘗試使用SQLT。SQLHC的詳細(xì)介紹請(qǐng)看:
Document 1366133.1 SQL Tuning Health-Check Script (SQLHC)
一旦
安裝,便可通過(guò)向
SQLT
傳遞一個(gè)包含 SQL 語(yǔ)句腳本(包括綁定變量)的文本文件或者其
SQL_ID
,對(duì) SQL 語(yǔ)句進(jìn)行分析。SQL_ID 可在 AWR 和 ASH 的報(bào)告中找到,HASH_VALUE 出現(xiàn)在 SQL_TRACE 的輸出中(SQL 文本的上面以"hv="的標(biāo)志來(lái)識(shí)別)。您也能在 V$SQL 視圖中發(fā)現(xiàn)這些字段。請(qǐng)參照接下來(lái)的文檔:
Document 1627387.1 How to Determine the SQL_ID for a SQL Statement
SQLT
主要方法 會(huì)連接到數(shù)據(jù)庫(kù),收集執(zhí)行計(jì)劃、基于成本的 Optimizer CBO 統(tǒng)計(jì)信息、Schema 對(duì)象元數(shù)據(jù)、性能統(tǒng)計(jì)信息、配置參數(shù)和會(huì)影響正在分析的 SQL 性能的其他元素。這些方法會(huì)對(duì)有問(wèn)題的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ù)庫(kù)需要具有這兩個(gè)軟件包的許可證。這兩個(gè)軟件包向
SQLT
工具提供了增強(qiáng)的功能。在
SQLT
安裝期間,您可以指定是否其中一個(gè)軟件包在您的數(shù)據(jù)庫(kù)被授權(quán)使用。如果一個(gè)都沒(méi)有,
SQLT
仍會(huì)提供一些基本信息,用于最開始的 SQL 性能診斷。
安全模式
SQLT
在
安裝的過(guò)程中會(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)容請(qǐng)參見 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ì)將任何對(duì)象安裝到應(yīng)用程序 schema 中。您可以在 UNIX、Linux 或 Windows 平臺(tái),Oracle DB 10.2、11.1、11.2 及更高版本中安裝此版本的 SQLT。對(duì)于所有“應(yīng)用于:”的信息,請(qǐng)參照文檔215187.1。
安裝步驟:
-
卸載先前版(可選)。
該可選步驟將刪除所有廢棄的
SQLTXPLAIN/SQLTXADMIN
schema 對(duì)象,并為全新安裝準(zhǔn)備環(huán)境。如果要保留 SQLT Repository 的現(xiàn)有內(nèi)容,請(qǐng)?zhí)^(guò)此步驟(推薦)。
# cd sqlt/install
# sqlplus / as sysdba
SQL> START sqdrop.sql
- 以
SYS
身份連接數(shù)據(jù)庫(kù)并執(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ù)庫(kù)上時(shí)是必須的)
在一些受限訪問(wèn)的系統(tǒng)中,您可能需要指定連接標(biāo)識(shí)符,例如
@PROD
。如果不需要連接標(biāo)識(shí)符,則不要輸入任何數(shù)據(jù),只需單擊回車鍵。什么也不鍵入是最常使用的安裝方法。
當(dāng)安裝在一個(gè)可插拔數(shù)據(jù)庫(kù)上時(shí)連接標(biāo)識(shí)符是必須提供的。
-
SQLTXPLAIN
密碼。 在大多數(shù)系統(tǒng)中區(qū)分大小寫。
-
SQLTXPLAIN
默認(rèn)表空間。 從可用的永久表空間列表中,選擇
SQLT
Repository 的
SQLTXPLAIN
應(yīng)使用的表空間。它必須具有 50MB 以上的可用空間。
-
SQLTXPLAIN
臨時(shí)表空間。 從可用的臨時(shí)表空間列表中,選擇
SQLTXPLAIN
臨時(shí)操作和臨時(shí)對(duì)象應(yīng)使用的表空間。
- 可選應(yīng)用程序用戶。
這是發(fā)出要分析 SQL 語(yǔ)句的用戶。例如,在 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
表示都沒(méi)有。如果選擇
T
或
D
,SQLT 可以在它生成的診斷文件中包含授權(quán)的內(nèi)容。默認(rèn)值為
T
。如果選擇
N
,SQLT 將只安裝限定的功能。
如果需要靜默安裝,可以使用下面三個(gè)選項(xiàng)來(lái)傳遞所有 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)于安裝問(wèn)題的幫助,您能從下面的論壇得到幫助:
SQLTXPLAIN: SQLT Installation Issues
卸載
SQLT
卸載
SQLT
會(huì)同時(shí)移除
SQLT
Repository 以及所有
SQLTXPLAIN/SQLTXADMIN
schema 對(duì)象。另外還會(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 的一些對(duì)象。然后可以使用新遷移的
SQLT
Repository 來(lái)恢復(fù) CBO 統(tǒng)計(jì)信息,或者在
SQLT
的新舊執(zhí)行程序之間執(zhí)行
COMPARE。
要升級(jí)
SQLT
,只需執(zhí)行
安裝,而不用執(zhí)行可選
卸載步驟。
如果升級(jí)失敗,可能是先前的
SQLT
版本太舊而無(wú)法升級(jí)。在這種情況下,請(qǐng)先繼續(xù)
卸載
SQLT
,然后執(zhí)行全新
安裝。