oracle 虚拟索引和不可见索引
来源:互联网 发布:魔戒亡灵大军 知乎 编辑:程序博客网 时间:2024/05/04 05:41
1,虚拟索引-(Virtual index)
虚拟索引,顾名思义是不创建实际的段,目的在于,不耗时,耗CPU,耗IO,大量存储空间情况下创建索引,观察判断对SQL的优化效果
SQL> drop table t1;Table dropped.SQL> create table t1 as select * from dba_objects;Table created.SQL> explain plan for select * from t1 where object_id<=50;Explained.SQL> select * from table(dbms_xplan.display(null,null,'BASIC +COST'));PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 3617692013-----------------------------------------------| Id | Operation | Name | Cost (%CPU)|-----------------------------------------------| 0 | SELECT STATEMENT | | 387 (1)|| 1 | TABLE ACCESS FULL| T1 | 387 (1)|-----------------------------------------------8 rows selected.SQL> alter session set "_use_nosegment_indexes"=true;Session altered.SQL> create index index_v1 on t1(object_id) nosegment;Index created.SQL> explain plan for select * from t1 where object_id<=50;Explained.SQL> select * from table(dbms_xplan.display(null,null,'BASIC +COST'));PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 1628153867---------------------------------------------------------------------| Id | Operation | Name | Cost (%CPU)|---------------------------------------------------------------------| 0 | SELECT STATEMENT | | 3 (0)|| 1 | TABLE ACCESS BY INDEX ROWID BATCHED| T1 | 3 (0)|| 2 | INDEX RANGE SCAN | INDEX_V1 | 2 (0)|---------------------------------------------------------------------9 rows selected.其中_use_nosegment_indexes代表指示数据库可以在执行计划中使用这些索引;create index中的nosegment代表这个索引时虚拟的
2,不可见索引(invisible)
默认情况下,当我们创建索引后,数据库就会自动的识别到该索引,并开始在成本估算中纳入创建的索引,不可见索引可是控制优化器是否对索引进行可见;很有用的一种情况是如果你想在已经创建了索引的情况下,进行一些调整,去除一些不该用的索引
alter index emp_idx1 invisible|visible; -- 使索引可见不可见,当然也可以用在创建索引的时候默认情况下是不可见索引对优化器不可见,当然可以调整系统或者会话参数进行修改
SQL> show parameter optimizer_use_invisible;NAME TYPE VALUE------------------------------------ ----------- ------------------------------optimizer_use_invisible_indexes boolean FALSE会话修改
SQL> alter session set optimizer_use_invisible_indexes=true;Session altered.SQL> show parameter optimizer_use_invisible;NAME TYPE VALUE------------------------------------ ----------- ------------------------------optimizer_use_invisible_indexes boolean TRUE
阅读全文
0 0
- oracle 虚拟索引和不可见索引
- 不可见索引和虚拟索引。
- oracle 不可见索引
- 如何让ORACLE索引不起作用(不可见)
- Oracle索引监控,重建,不可见
- 不可见索引
- 不可见索引
- Oracle Study---Oracle 11g 不可见索引案例
- Oracle 11g新特性:索引不可见
- Oracle 11g之不可见的索引
- oracle虚拟索引详解
- Oracle之虚拟索引
- Oracle11g新特性-不可见索引
- Oracle 使用索引和不使用索引的举例
- Oracle 不走索引
- Oracle 虚拟索引(Virtual index)
- oracle虚拟索引的运用
- Oracle虚拟索引的运用
- Rhadoop集群搭建
- 感知机—Perceptron
- iOS React Native开发 环境配置图文教程
- 按下返回键dialog不消失
- 模板方法模式深度解析
- oracle 虚拟索引和不可见索引
- 大数据基础知识点---hadoop生态圈
- 生日悖论
- jQuery 版本viewer.js插件的结构分析与学习
- 大数据平台的选择
- 排序
- Linux的网卡由eth0变成了eth1,如何修复?
- Class.forName()用法详解
- 20171217---Day017