2011-04-27 132 views
4

我使用Oracle 10g的Allround Automation PL/SQL Developer,今天我注意到解釋計劃不再顯示Access Predicates或Filter的任何內容謂詞。唯一改變的是(我知道的)是昨天我嘗試使用Oracle企業管理器來解釋一個查詢計劃,之後PL/SQL Developer不再填充這兩列。Oracle和PL/SQL Developer - 訪問謂詞和過濾器謂詞不再顯示

我不知道如果使用OEM可能已經改變了一些現在混淆了PL/SQL Developer的設置。任何人有任何建議?

回答

3

你能

SELECT owner, table_name 
    FROM dba_tables 
WHERE table_name = 'PLAN_TABLE' 

我見過很多次,不同的GUI嘗試是「有益的」,並在本地模式創建PLAN_TABLE如果沒有注意到,有一個同義詞不存在那裏共享PLAN_TABLE。而且,作爲有用的圖形用戶界面,他們傾向於使用較舊版本的表格創建計劃表,該表格可能不支持訪問和過濾謂詞等報告。

如果只有一個PLAN_TABLE,您可以使用安裝中的最新utlxplan.sql腳本重新創建PLAN_TABLE(或驗證您是否擁有最新版本的表)?

+0

我可以從中選擇,對於每一行,有4個有效模式名稱中的一個作爲OWNER(其中一個是我正在使用的),而table_name始終是PLAN_TABLE ...最後一個分析日期是昨天早上,儘管我最近一直在運行計劃。最後,我注意到PL/SQL Developer在數據庫瀏覽器下顯示了一個「PLAN_TABLE」,並且它屬於我的模式,並且沒有Access/Filter謂詞列。放棄這個本地擁有的PLAN_TABLE是否安全,並希望PL/SQL Dev能夠足夠聰明地下次查看共享表? – FrustratedWithFormsDesigner 2011-04-27 16:28:13

+0

假定有一個公共的同義詞「PLAN_TABLE」,你應該可以安全地刪除你的本地'PLAN_TABLE'。您也可以使用utlxplan.sql腳本重新創建本地'PLAN_TABLE'。 – 2011-04-27 16:46:51

+0

@Justin Cave:我試着運行'select * from all_synonyms where table_name ='PLAN_TABLE';'沒有回來。這是否意味着沒有公共同義詞?順便說一句,我沒有在這臺服務器上的管理員,所以我不認爲我可以重新創建任何不在我的模式中的東西 - 但是OEM再也不能修改我的模式之外的任何東西(它不應該擁有PLSQL Developer所擁有的額外權限),那麼如果沒有公共同義詞,我怎麼才能得到完整的查詢計劃? – FrustratedWithFormsDesigner 2011-04-27 17:54:54