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

Oracle 调用DBMS_ADVISOR.TUNE_MVIEW时运行错误

ASKTOM 2020-08-14
701

问题描述

嗨,汤姆,

我在尝试调用DBMS_ADVISOR.TUNE_MVIEW时遇到了以下问题。

首先,创建帐户sqltune_admin如下:
create user sqltune_admin identified by sqltune_admin; 
grant select any dictionary to sqltune_admin;
grant create session to sqltune_admin;
grant oem_advisor to sqltune_admin; 
grant advisor to sqltune_admin; 


1. Case 1
DECLARE
  v_tname VARCHAR2(30) := 'MVIEW_DUMMY_TASK';
BEGIN
  DBMS_ADVISOR.TUNE_MVIEW(
      task_name      => v_tname
     ,mv_create_stmt => 
       'CREATE MATERIALIZED VIEW omv REFRESH WITH ROWID AS SELECT ''x'' dummy FROM dual');
END;
/


ORA-13600: 在Advisor中遇到错误
QSM-03113: 无法调整实体化视图语句
ORA-06512: 在 “SYS.DBMS_SYS_ERROR”,第86行
ORA-06512: 在 “SYS.PRVT_ACCESS_ADVISOR”,第205行
ORA-06512: 在 “SYS.PRVT_TUNE_MVIEW”,第1223行
ORA-06512: 在 “SYS.DBMS_ADVISOR”,第828行
ORA-06512: 在4号线

Question: 如果无法调谐mview,是否应该有这样的错误?

2. Case 2
DECLARE
  v_tname VARCHAR2(30) := 'fed_vam_attached_mv';
BEGIN
DBMS_ADVISOR.TUNE_MVIEW(v_tname, '
create materialized view fs_fleet.fed_vam_attached_mv refresh fast on commit with primary key
as
select d.id from fs_ead_admin.ii_documentations d
');
END;
/

ORA-13600: 在Advisor中遇到错误
QSM-03112: 无效的CREATE实例化视图语句
ORA-01031: 权限不足
ORA-06512: 在 “SYS.DBMS_SYS_ERROR”,第86行
ORA-06512: 在 “SYS.PRVT_ACCESS_ADVISOR”,第205行
ORA-06512: 在 “SYS.PRVT_TUNE_MVIEW”,第461行
ORA-06512: 在 “SYS.PRVT_TUNE_MVIEW”,第1132行
ORA-06512: 在 “SYS.DBMS_ADVISOR”,第828行
ORA-06512: 在4号线

Question:为了防止 “权限不足” 错误,sqltune_admin需要什么特权?

谢谢,
查尔斯

专家解答

Is it supposed to have such an error if mview cannot be tuned?

这是一个命名的例外,告诉你它不能调谐MV,所以...什么事?

该过程进行测试,以查看是否可以使MV快速刷新。这涉及在相关表格上制作MV日志。这对双重性没用!

所以我不会读太多。如果你有一个使用常规表的测试用例,你不明白请分享 (所有的代码创建表,示例数据在insert,等等);

What privilege(s) does sqltune_admin need in order to prevent the "insufficient privileges" error?

检查您的用户是否有

-创建物化视图权限
-选择在fs_ead_admin.ii_documentations上授予的 (直接,而不是通过角色)

同样,如果没有完整的测试用例,在这里很难确定。如果以上不能解决,请创建一个完整的测试用例 (这次包括创建用户语句) 并将其发布在此处。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论