暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在apex.oracle.com上访问数据字典视图的性能问题

ASKTOM 2020-12-14
289

问题描述

亲爱的支持,
我有一个特定于apex.oracle.com的性能问题,我在其中安装了 “hr数据” 示例架构
然后尝试在SQL命令中的数据字典视图上执行一个简单的选择:

select * from SYS.USER_CONSTRAINTS;

不返回任何行。(因为超时!?)

解释返回ORA-01039: 对视图的基础对象的权限不足

工作原理是在访问数据字典视图的查询上创建物化视图。这些视图已调整为在我的数据库版本为19.3.0.0.0的本地Oracle虚拟框中以及在cloud.oracle.com自治数据库版本为19.5.0.0.0的环境中快速运行。

但是在apex.oracle.com上,调度程序作业中的刷新大约需要10分钟才能进行以下查询。
我该怎么做才能使它们再次快速运行?

SELECT /*+ RESULT_CACHE PARALLEL USE_MERGE(F FC SC) */
 F.TABLE_NAME, F.OWNER, F.CONSTRAINT_NAME, FC.COLUMN_NAME, FC.POSITION, 
 SC.COLUMN_ID, SC.NULLABLE, F.DELETE_RULE, F.DEFERRABLE, F.DEFERRED, 
 F.STATUS, F.VALIDATED, F.R_CONSTRAINT_NAME, F.R_OWNER
FROM SYS.USER_CONSTRAINTS F 
JOIN SYS.USER_CONS_COLUMNS FC ON F.OWNER = FC.OWNER AND F.CONSTRAINT_NAME = FC.CONSTRAINT_NAME AND F.TABLE_NAME = FC.TABLE_NAME
JOIN SYS.USER_TAB_COLS SC ON SC.TABLE_NAME = F.TABLE_NAME AND SC.COLUMN_NAME = FC.COLUMN_NAME AND SC.HIDDEN_COLUMN = 'NO' 
AND F.CONSTRAINT_TYPE = 'R'
AND F.OWNER = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') ;

专家解答

我会尝试的第一件事是这样的:

选择
F.表名称,F.所有者,F.约束名称,FC.列名称,FC.位置,
SC.COLUMN_ID,SC.NULLABLE,F.DELETE_RULE,F.递延,
F.状态,F.已验证,F.R_CONSTRAINT_NAME,F.R_OWNER
从系统。用户约束F
加入SYS.USER_CONS_COLUMNS FC ON F.OWNER = FC.OWNER和F.CONSTRAINT_NAME = FC.CONSTRAINT_NAME和F.TABLE_NAME = FC.TABLE_NAME
在SC上加入SYS.USER_TAB_COLS SC.TABLE_NAME = F.TABLE_NAME和SC.COLUMN_NAME = FC.COLUMN_NAME和SC.HIDDEN_COLUMN = '否'
和F.约束类型 = 'R'
和F.OWNER = SYS_CONTEXT('USERENV','current_schema ');

即,删除所有提示。我只是在apex.oracle.com上在添加了HR架构的现有工作区上进行了尝试,花了5-10秒。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论