溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQLT 概要和安裝

發(fā)布時(shí)間:2020-08-11 21:01:02 來源:ITPUB博客 閱讀:105 作者:pxbibm 欄目:關(guān)系型數(shù)據(jù)庫

  • SQLT 概覽
  • 安全模式
  • 安裝  SQLT
  • 卸載  SQLT
  • 升級  SQLT
  • 常見問題
  • 上傳SQLT文件給Oracle技術(shù)支持

主要方法
  • XTRACT
  • XECUTE
  • XTRXEC
  • XPLAIN
  • XTRSBY
  • XPREXT
  • XPREXC

特殊方法
  • COMPARE
  • TRCANLZR
  • TRCAXTR
  • TRCASPLIT
  • XTRSET

高級方法和模塊
  • PROFILE
  • XGRAM
  • XPLORE
  • XHUME

SQLT 概覽

SQLTXPLAIN,也稱為  SQLT,是 Oracle Server Technologies Center of Expertise - ST CoE 提供的一款工具。  SQLT  主要方法 通過輸入的一個(gè) SQL 語句,可輸出一組診斷文件。這些文件通常用于診斷性能不佳或者產(chǎn)生錯(cuò)誤結(jié)果的 SQL 語句。

對于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。

安裝步驟:

  1. 卸載先前版(可選)。
  2. 該可選步驟將刪除所有廢棄的  SQLTXPLAIN/SQLTXADMIN schema 對象,并為全新安裝準(zhǔn)備環(huán)境。如果要保留 SQLT Repository 的現(xiàn)有內(nèi)容,請?zhí)^此步驟(推薦)。

    # cd sqlt/install
    # sqlplus / as sysdba
    SQL> START sqdrop.sql
  3. 以  SYS 身份連接數(shù)據(jù)庫并執(zhí)行安裝腳本  sqlt/install/sqcreate.sql。
  4. # cd sqlt/install
    # sqlplus / as sysdba
    SQL> START sqcreate.sql

在安裝期間,系統(tǒng)將要求您輸入以下參數(shù)值:

  1. 可選連接標(biāo)識(shí)符(當(dāng)安裝在一個(gè)可插拔數(shù)據(jù)庫上時(shí)是必須的)
  2. 在一些受限訪問的系統(tǒng)中,您可能需要指定連接標(biāo)識(shí)符,例如  @PROD。如果不需要連接標(biāo)識(shí)符,則不要輸入任何數(shù)據(jù),只需單擊回車鍵。什么也不鍵入是最常使用的安裝方法。
    當(dāng)安裝在一個(gè)可插拔數(shù)據(jù)庫上時(shí)連接標(biāo)識(shí)符是必須提供的。

  3. SQLTXPLAIN 密碼。
  4. 在大多數(shù)系統(tǒng)中區(qū)分大小寫。

  5. SQLTXPLAIN 默認(rèn)表空間。
  6. 從可用的永久表空間列表中,選擇  SQLT Repository 的  SQLTXPLAIN 應(yīng)使用的表空間。它必須具有 50MB 以上的可用空間。

  7. SQLTXPLAIN 臨時(shí)表空間。
  8. 從可用的臨時(shí)表空間列表中,選擇  SQLTXPLAIN 臨時(shí)操作和臨時(shí)對象應(yīng)使用的表空間。

  9. 可選應(yīng)用程序用戶。
  10. 這是發(fā)出要分析 SQL 語句的用戶。例如,在 EBS 系統(tǒng)上,指定為  APPS;在 Siebel 上,應(yīng)指定為 SIEBEL;在 People Soft 上,應(yīng)指定為  SYSADM。系統(tǒng)不會(huì)要求您輸入此用戶的密碼。也可以在安裝該工具后添加其他的  SQLT 用戶,方法為:授予他們角色  SQLT_USER_ROLE。

  11. 授權(quán)的 Oracle Pack。(T,D 或 N)
  12. 可以指定  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ù):

  1. 在文件中。
  2. 首先使用一個(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
  3. 命令行。
  4. 執(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
  5. 在 Oracle 內(nèi)部安裝。
  6. 執(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

升級  SQLT

如果在系統(tǒng)中已安裝先前版本的  SQLT,則可以將  SQLT 升級到其最新版本,同時(shí)部分保留現(xiàn)有  SQLT Repository 的一些對象。然后可以使用新遷移的  SQLT Repository 來恢復(fù) CBO 統(tǒng)計(jì)信息,或者在  SQLT 的新舊執(zhí)行程序之間執(zhí)行  COMPARE。

要升級  SQLT,只需執(zhí)行 安裝,而不用執(zhí)行可選 卸載步驟。

如果升級失敗,可能是先前的  SQLT 版本太舊而無法升級。在這種情況下,請先繼續(xù) 卸載  SQLT,然后執(zhí)行全新 安裝。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI