Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 11g 新特性 -- Invisible Indexes(不可见的索引) 说明

一.Invisible Indexes 说明Oracle 从版本11g 开始,可以创建不可见的索引。优化程序会忽略不可见的索引,除非在会话或系统级别上将 OPTIMIZER_USE_INVISIBLE_INDEXES  初始化参数显式设置为TRUE。此参数的默认值是FALSE。使索引不可见是使索引不可用或删除索引的一种替代办法。使用不可见的索引,可完成以下操作:(1)  在删除索引之前测试对索引的删除。(2)  对应用程序的特定操作或模块使用临时索引结构,这样就不会影响整个应用程序。注意:与不可用的索引不同,不可见的索引在使用DML 语句期间仍会得到维护。当索引不可见时,优化程序生成的计划不会使用该索引。如果未发现性能下降,则可以删除该索引。还可以创建最初不可见的索引,执行测试,然后确定是否使该索引可见。可以查询*_INDEXES 数据字典视图的VISIBILITY 列来确定该索引是VISIBLE 还是INVISIBLE。SQL> select visibility from dba_indexes where index_name="IDX_ID";VISIBILIT---------VISIBLE  --创建不可见索引:CREATE INDEX index_name ONtable_name(column_name) INVISIBLE; --修改索引是否可见:ALTER INDEX index_name INVISIBLE;ALTER INDEX index_name VISIBLE;  二.示例
 --创建表,索引,并收集统计信息: SQL> create table dave(id number); Table created. SQL> begin 2    for I in 1 .. 10000 loop 3      insert into DAVE values(I); 4    end loop; 5    commit; 6  end; 7  / PL/SQL procedure successfully completed. SQL> create index idx_id on dave(id)invisible; Index created. SQL> execdbms_stats.gather_table_stats(ownname =>"&owner",tabname=>"&tablename",estimate_percent => &est_per ,method_opt =>"forall columns size 1",degree=>&degree,cascade => true);Enter value for owner: sysEnter value for tablename: daveEnter value for est_per: 50Enter value for degree: 2 PL/SQL procedure successfully completed. SQL>
  • 1
  • 2
  • 下一页
Oracle 11g DDL 的 wait选项(DDL_LOCK_TIMEOUT)Oracle 11g 新特性 -- 管理 SPFILE 说明相关资讯      Oracle 11g  Oracle 11g 新特性 
  • Oracle 11g导入到10g引起的错误  (11/16/2015 10:55:27)
  • Oracle 11g 导库导不出空表问题  (08/19/2015 19:55:58)
  • Oracle 11g统计信息收集--多列统计  (07/24/2015 10:32:39)
  • Oracle 11gClone安装方法  (08/24/2015 20:25:41)
  • Oracle 11g中和SQL TUNING相关的新  (08/12/2015 11:22:52)
  • Oracle 11g数据泵详解  (07/08/2015 08:29:51)
本文评论 查看全部评论 (0)
表情: 姓名: 字数