加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 在不同用户下创建的索引

发布时间:2021-01-17 23:05:05 所属栏目:站长百科 来源:网络整理
导读:我在一个表列上创建了一个索引作为sys用户,因为我没有提到它在sys模式下创建的模式名称.当我作为具有对表的读访问权限的不同用户运行查询时,我没有看到正在使用的索引.如果索引是在不同的模式下创建的,请告诉我是否在oracle中忽略索引? 解决方法 没有特定于

我在一个表列上创建了一个索引作为sys用户,因为我没有提到它在sys模式下创建的模式名称.当我作为具有对表的读访问权限的不同用户运行查询时,我没有看到正在使用的索引.如果索引是在不同的模式下创建的,请告诉我是否在oracle中忽略索引?

解决方法

没有特定于索引对象的权限.所以,就我自己而言,我会说索引将被自动使用 – 即使它在不同的模式中.但是,由于对链接答案的评论提出疑问,我使用oracle 11g进行了实验:

作为用户sonia:

SQL> create table t as (select level n from dual connect by level < 100);
Table created.

SQL> explain plan for select * from sonia.t where n < 10;
SQL> @UTLXPLS.SQL

TABLE ACCESS FULL T
SELECT STATEMENT

SQL> grant select on t to sylvain;
Grant succeeded.

作为用户sylvain:

SQL> explain plan for select * from sonia.t where n < 10;
Explained.

SQL> @UTLXPLS.SQL

TABLE ACCESS FULL T
SELECT STATEMENT

SQL> create index syl_idx on sonia.t(n);
Index created.

SQL> explain plan for select * from sonia.t where n < 10;
Explained.

SQL> @UTLXPLS.SQL

INDEX RANGE SCAN SYL_IDX
SELECT STATEMENT

回到sonia:

SQL> explain plan for select * from sonia.t where n < 10;
Explained.

SQL> @UTLXPLS.SQL

INDEX RANGE SCAN SYL_IDX
SELECT STATEMENT

如您所见,在从sonia和sylvain查询表时,都使用SYL_IDX(在sylvain模式中创建的sonia.t的索引).拥有表的选择权限就足够了.

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读