oracle更改视图无效授权,Grant权限导致执行计划失效

本文通过实验展示了在Oracle数据库中,对表进行GRANT SELECT权限操作如何导致已有的执行计划失效,尤其是在使用绑定变量的情况下。测试过程揭示了权限变更后,执行计划变为FAST FULL SCAN,且V$SQL相关视图无法找到旧的执行计划信息,这可能在系统高峰期引发性能问题。建议避免在高负载时段执行GRANT或REVOKE操作。
摘要由CSDN通过智能技术生成

环境的建立:

ORACLE 9208

REM T1: Set up test case

var x number;

var y number;

create table bigtab as select * from all_objects;

create index bt_ix on bigtab (object_id);

execute dbms_stats.gather_table_stats (ownname=>'KONG', -

tabname=>'BIGTAB', CASCADE => TRUE, -

method_opt => 'FOR ALL COLUMNS SIZE 1');

[B]测试第一步:[/B]

在SESSION A中执行:

SQL> SELECT COUNT(*) FROM BIGTAB WHERE OBJECT_ID BETWEEN :x and :y;

COUNT(*)

----------

1

在SESSION B会话查看执行计划:

SQL>      select sql_id, sql_text from v$sql

2       where sql_text like 'SELECT COUNT(*) FROM BIGTAB%';

SQL_ID

-------------

SQL_TEXT

--------------------------------------------------------------------------------

ddqk0yd1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值