【問題處理】PL/SQL Developer報錯Dynamic Performance Tables not accessible
今天,開發團隊裡的幾位同事向我反映,在使用PL/SQL Developer工具登陸一個新建立的使用者進行查詢時,報出以下錯誤(PL/SQL Developer版本:7.1.5 1403):
Dynamic Performance Tables not accessible,
Automatic Statistics disabled for this session
You can disable statistics in the preference menu, or obtain select
priviliges on the V$session,V$sesstat and V$statname tables
這個報錯資訊在不同的PL/SQL Developer版本都會出現,從上面詳細的報錯提示資訊中我們可以判斷得到,報錯原因不在工具本身。
在此,詳細記錄一下這個小問題的三種處理方法。
1.第一種處理方法(不推薦)
就是在報錯的Error對話方塊中將“Don't show this message again”選項選中,下次就不在提示這個錯誤了。
這種方法應該可以叫做“鴕鳥方式”的處理方法。沒有從根本上解決這個問題。
2.第二種處理方法(可以採納)
報錯資訊中描述的非常詳細,原因是動態效能表沒有權利被訪問導致的問題,因此,我們透過把所需訪問許可權賦予給具體使用者的方法來解決這個問題。
這裡給出我能想到的三種具體處理方法。大家可以繼續補充。
1)如果只是某一具體使用者有許可權查詢這三個動態效能檢視,可以如下進行操作
這裡注意一下:我們授權的檢視是V_$session不是V$session,因為V$session是同名不是具體的檢視。否則您會收到下面這個錯誤。
sys@ora10g> grant select on V$session to user_sec;
grant select on V$session to user_sec
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
正確的授權方法如下:
SQL> grant select on V_$session to user_sec;
SQL> grant select on V_$sesstat to user_sec;
SQL> grant select on V_$statname to user_sec;
2)可以使用下面這個“簡單粗暴”的方法處理之。
SQL> grant SELECT ANY DICTIONARY to user_sec;
3)以上兩種方法是針對特定使用者的處理方法,如果想讓所有使用者(不侷限在上面的user_sec使用者)都能夠查詢這三個動態效能檢視,可以透過將查詢許可權授權給public方法來實現,操作如下。這樣就可以保證所有開發人員都不會再出現上述的報錯資訊了。
SQL> grant select on V_$session to public;
SQL> grant select on V_$sesstat to public;
SQL> grant select on V_$statname to public;
3.第三種方法(推薦)
徹底禁掉PL/SQL Developer的這個功能。
方法如下:
導航到Tools --> Preferences --> Options
找到“Automatic Statistics”選項,將其前面的小對勾去掉,然後點選“Apply”和“OK”儲存退出。
4.小結
之所以書寫這個文章,只是給出一個處理問題的一般方法,這就是:“充分挖掘具體報錯資訊,從各種表面現象入手,逐步深入,最終得到滿意的處理結果。”
最後談一下DBA與資料庫管理開發工具(如PL/SQL Developer、Toad等等)的關係。
如果您是純開發DBA,那麼強烈建議您認真的研究這些優秀高階工具的每一個細節,因為這樣可以大大的提高您的工作效率。
如果您是純維護DBA,告訴您一個好訊息和一個壞訊息。
好訊息是:
您的能力已經足夠強大,沒有必要再依賴這些工具。因為它們提供的那些定製好的功能已經遠遠的滿足不了您對資料庫細節的渴求;另外,即使在"一般"極端的故障處理現場,您覺得有可能用這些工具連線到DB麼?剩下的可能只有一頭汗水與無奈的嘆息,也許只有在那個時候您才會意識到:原來真正意義上的救命稻草是那個看上去充滿神秘色彩的SQL*Plus命令列工具;
壞訊息是:
珍愛DBA生命,請您快些遠離這些工具!
-- The End --
Dynamic Performance Tables not accessible,
Automatic Statistics disabled for this session
You can disable statistics in the preference menu, or obtain select
priviliges on the V$session,V$sesstat and V$statname tables
這個報錯資訊在不同的PL/SQL Developer版本都會出現,從上面詳細的報錯提示資訊中我們可以判斷得到,報錯原因不在工具本身。
在此,詳細記錄一下這個小問題的三種處理方法。
1.第一種處理方法(不推薦)
就是在報錯的Error對話方塊中將“Don't show this message again”選項選中,下次就不在提示這個錯誤了。
這種方法應該可以叫做“鴕鳥方式”的處理方法。沒有從根本上解決這個問題。
2.第二種處理方法(可以採納)
報錯資訊中描述的非常詳細,原因是動態效能表沒有權利被訪問導致的問題,因此,我們透過把所需訪問許可權賦予給具體使用者的方法來解決這個問題。
這裡給出我能想到的三種具體處理方法。大家可以繼續補充。
1)如果只是某一具體使用者有許可權查詢這三個動態效能檢視,可以如下進行操作
這裡注意一下:我們授權的檢視是V_$session不是V$session,因為V$session是同名不是具體的檢視。否則您會收到下面這個錯誤。
sys@ora10g> grant select on V$session to user_sec;
grant select on V$session to user_sec
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
正確的授權方法如下:
SQL> grant select on V_$session to user_sec;
SQL> grant select on V_$sesstat to user_sec;
SQL> grant select on V_$statname to user_sec;
2)可以使用下面這個“簡單粗暴”的方法處理之。
SQL> grant SELECT ANY DICTIONARY to user_sec;
3)以上兩種方法是針對特定使用者的處理方法,如果想讓所有使用者(不侷限在上面的user_sec使用者)都能夠查詢這三個動態效能檢視,可以透過將查詢許可權授權給public方法來實現,操作如下。這樣就可以保證所有開發人員都不會再出現上述的報錯資訊了。
SQL> grant select on V_$session to public;
SQL> grant select on V_$sesstat to public;
SQL> grant select on V_$statname to public;
3.第三種方法(推薦)
徹底禁掉PL/SQL Developer的這個功能。
方法如下:
導航到Tools --> Preferences --> Options
找到“Automatic Statistics”選項,將其前面的小對勾去掉,然後點選“Apply”和“OK”儲存退出。
4.小結
之所以書寫這個文章,只是給出一個處理問題的一般方法,這就是:“充分挖掘具體報錯資訊,從各種表面現象入手,逐步深入,最終得到滿意的處理結果。”
最後談一下DBA與資料庫管理開發工具(如PL/SQL Developer、Toad等等)的關係。
如果您是純開發DBA,那麼強烈建議您認真的研究這些優秀高階工具的每一個細節,因為這樣可以大大的提高您的工作效率。
如果您是純維護DBA,告訴您一個好訊息和一個壞訊息。
好訊息是:
您的能力已經足夠強大,沒有必要再依賴這些工具。因為它們提供的那些定製好的功能已經遠遠的滿足不了您對資料庫細節的渴求;另外,即使在"一般"極端的故障處理現場,您覺得有可能用這些工具連線到DB麼?剩下的可能只有一頭汗水與無奈的嘆息,也許只有在那個時候您才會意識到:原來真正意義上的救命稻草是那個看上去充滿神秘色彩的SQL*Plus命令列工具;
壞訊息是:
珍愛DBA生命,請您快些遠離這些工具!
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-614671/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pl/sql developer除錯儲存過程報錯處理SQLDeveloper除錯儲存過程
- corrupted block的一次處理和古舊版本的PL/SQL Developer問題BloCSQLDeveloper
- pl/sql developer的一個小問題SQLDeveloper
- PL/SQL Profiler 和SQL Developer 報表SQLDeveloper
- PL/SQl Developer使用SQLDeveloper
- PL/SQL Developer 使用SQLDeveloper
- pl/sql中錯誤的異常處理SQL
- pl/sql developer使用技巧SQLDeveloper
- PL SQL異常處理.SQL
- PL/SQL Developer 連線 OracleSQLDeveloperOracle
- pl sql developer 8.0 register codeSQLDeveloper
- 解決pl/sql developer中資料庫插入資料亂碼問題SQLDeveloper資料庫
- COM+元件啟動報錯問題處理元件
- 32bit Pl/SQL developer 報can not find oci.dllSQLDeveloper
- PL/SQL Developer顯示行號SQLDeveloper
- PL/SQL Developer使用技巧、快捷鍵SQLDeveloper
- 【Oracle】Windows安裝pl/sql developerOracleWindowsSQLDeveloper
- 處理動態連結庫報錯的問題
- ES報錯Result window is too large問題處理薦
- PL/SQL 插入clob欄位處理SQL
- PL/SQL異常處理初步(轉)SQL
- pl/sql的HomeEnd問題SQL
- 啟動PL/SQL Developer 報字元編碼不一致錯誤,Database character setSQLDeveloper字元Database
- centos6.5報錯:checking filesystems failed問題處理CentOSAI
- pl/sql developer中文顯示亂碼SQLDeveloper
- 設定PL/SQL Developer 字符集SQLDeveloper
- PL/SQL Developer 6.0.4.906特別版SQLDeveloper
- pl developerDeveloper
- 【問題處理】diagcollection.pl採集指令碼執行出錯——'crshome' is missingGC指令碼
- PL/SQL使用匿名塊處理資料SQL
- (轉)pl/sql開發異常處理SQL
- Quoted- How Bulk Binds in PL/SQL Boost PerformanceSQLORM
- adcfgclone.pl appsTier報錯某些sh執行錯誤處理GCAPP
- 記一次報錯 symlink(): Protocol error 問題處理ProtocolError
- 【問題處理】diagcollection.pl採集指令碼執行出錯——Argument list too longGC指令碼
- PL/SQL Developer-官網下載地址SQLDeveloper
- pl/sql developer 顯示Window List視窗SQLDeveloper
- [Tools] PL/SQL Developer設定時間格式SQLDeveloper