2011-04-27 256 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