SQL*Plus中plustrce.sql(SP2-0613、SP2-0611)和(SP2-0618、SP2-0611)

lhrbest發表於2017-03-19

AUTOTRACE是一項 SQL*Plus 功能,自動跟蹤為 SQL 語句生成一個執行計劃並且提供與該語句的處理有關的統計。SQL*Plus AUTOTRACE 可以用來替代 SQL Trace 使用,AUTOTRACE 的好處是您不必設定跟蹤檔案的格式,並且它將自動為 SQL 語句顯示執行計劃。然而,AUTOTRACE 分析和執行語句;而EXPLAIN PLAN僅分析語句。

  使用AUTOTRACE不會產生跟蹤檔案。

  一、啟用Autotrace功能。任何以SQL*PLUS連線的session都可以用Autotrace,不過還是要做一些設定的,否則可能報錯。

  1、報錯示例:SQL :> set autotrace on;

  SP2-0613: Unable to verify PLAN_TABLE format or existence

  SP2-0611: Error enabling EXPLAIN report

  SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

  SP2-0611: Error enabling STATISTICS report

  *******************************************************************************

  SQL> set autotrace on;

  SP2-0613: 無法驗證 PLAN_TABLE 格式或實體

  SP2-0611: 啟用EXPLAIN報告時出現錯誤

  SP2-0618: 無法找到會話識別符號。啟用檢查 PLUSTRACE 角色

  SP2-0611: 啟用STATISTICS報告時出現錯誤

  該錯誤的的主要原因是由於當前使用者下沒有PLAN_TABLE這張表及相應的PLUSTRACE角色許可權。



解決:

@?/sqlplus/admin/plustrce.sql

@?/rdbms/admin/utlxplan.sql


普通使用者在SQL*Plus中開啟AUTOTRACE報告時,遇到SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled錯誤。如下所示:

SQL>

SQL> set autotrace on;

SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

SP2-0611: Error enabling STATISTICS report

SQL>

clip_image001

此時應該檢查資料庫是否已經建立了角色PLUSTRACE,使用下面指令碼檢查角色PLUSTRACE是否存在。

SELECT * FROM DBA_ROLES WHERE ROLE='PLUSTRACE'

如果角色不存在,應該去$ORACLE_HOME/sqlplus/admin/目錄下,你會找到plustrce.sql指令碼檔案。

[oracle@db-server ~]$ cd $ORACLE_HOME/sqlplus/admin/
[oracle@db-server admin]$ ls
glogin.sql  help  iplus  libisqlplus.def  libsqlplus.def  plustrce.sql  pupbld.sql
[oracle@db-server admin]$ more plustrce.sql
--
-- Copyright (c) Oracle Corporation 1995, 2002.  All Rights Reserved.
--
-- NAME
--   plustrce.sql
--
-- DESCRIPTION
--   Creates a role with access to Dynamic Performance Tables
--   for the SQL*Plus SET AUTOTRACE ... STATISTICS command.
--   After this script has been run, each user requiring access to
--   the AUTOTRACE feature should be granted the PLUSTRACE role by
--   the DBA.
--
-- USAGE
--   sqlplus "sys/knl_test7 as sysdba" @plustrce
--
--   Catalog.sql must have been run before this file is run.
--   This file must be run while connected to a DBA schema.
 
set echo on
 
drop role plustrace;
create role plustrace;
 
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$mystat to plustrace;
grant plustrace to dba with admin option;
 
set echo off

執行該指令碼就會建立角色PLUSTRACE,如下所示。然後將該角色授予對應使用者即可。

clip_image002





About Me

...............................................................................................................................

本文整理自網路

本文在itpubhttp://blog.itpub.net/26736162)、部落格園http://www.cnblogs.com/lhrbest和個人微信公眾號(xiaomaimiaolhr)上有同步更新

本文pdf小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● QQ群:230161599     微信群:私聊

聯絡我請加QQ好友(642808185),註明新增緣由

文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

版權所有,歡迎分享本文,轉載請保留出處

...............................................................................................................................

拿起手機使用微信客戶端掃描下邊的左邊圖片來關注小麥苗的微信公眾號:xiaomaimiaolhr,掃描右邊的二維碼加入小麥苗的QQ群,學習最實用的資料庫技術。

 SQL*Plus中plustrce.sql(SP2-0613、SP2-0611)和(SP2-0618、SP2-0611)  DBA筆試面試講解

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2135621/,如需轉載,請註明出處,否則將追究法律責任。

相關文章