SELECT /*+ first_rows*/
F.CONSTRAINT_NAME FROM SYS.ALL_CONSTRAINTS F,
SYS.ALL_CONS_COLUMNS,SYS.ALL_CONSTRAINTS P WHERE F.OWNER = 'SCOTT' AND
F.TABLE_NAME = 'EMP' AND F.CONSTRAINT_TYPE ='R' AND
SYS.ALL_CONS_COLUMNS.CONSTRAINT_NAME = F.CONSTRAINT_NAME AND
SYS.ALL_CONS_COLUMNS.TABLE_NAME = 'EMP' AND SYS.ALL_CONS_COLUMNS.OWNER =
'SCOTT' AND P.OWNER = F.R_OWNER AND P.CONSTRAINT_NAME = F.R_CONSTRAINT_NAME
ORDER BY F.CONSTRAINT_NAME, SYS.ALL_CONS_COLUMNS.POSITION;
-----------------------------------------------------------------
将第一行的/*+ first_rows*/改为/*+ rule*/就可以运行,如何可以在基于成本的first_rows模式下运行以上语句?
F.CONSTRAINT_NAME FROM SYS.ALL_CONSTRAINTS F,
SYS.ALL_CONS_COLUMNS,SYS.ALL_CONSTRAINTS P WHERE F.OWNER = 'SCOTT' AND
F.TABLE_NAME = 'EMP' AND F.CONSTRAINT_TYPE ='R' AND
SYS.ALL_CONS_COLUMNS.CONSTRAINT_NAME = F.CONSTRAINT_NAME AND
SYS.ALL_CONS_COLUMNS.TABLE_NAME = 'EMP' AND SYS.ALL_CONS_COLUMNS.OWNER =
'SCOTT' AND P.OWNER = F.R_OWNER AND P.CONSTRAINT_NAME = F.R_CONSTRAINT_NAME
ORDER BY F.CONSTRAINT_NAME, SYS.ALL_CONS_COLUMNS.POSITION;
-----------------------------------------------------------------
将第一行的/*+ first_rows*/改为/*+ rule*/就可以运行,如何可以在基于成本的first_rows模式下运行以上语句?
-----------------------------------------------
解释计划不可用于该SQL语句:
ORA-01039:试图基本对象的权限不足
其原因可能是对基础对象执行解析计划命令的权限不足,也可能是SQL中的目标名不符合要求.
-----------------------------------------------
在很长时间后,sql/plus才返回结果,但添加/*RULE*/提示后就很快。
请问该如何改变此种情况。以上代码是在用PB连接ORACLE后查看TABLE中的数据时反映很慢并用OEM监控到的。如果将数据库的OPTIMIZER_MODE改为RULE将改变整个数据库的执行计划,如果不改在PB画数据窗口时反映很慢(程序无响应),请问高手们这个如何解决。
谢谢