
index
文章平均质量分 81
事后诸葛亮
深入浅出!
展开
-
通过复合索引来避免is null使索引失效!
由于oracle索引的特性,使得is null这种条件的sql不能够使用索引。但是我们可以通过复合索引的形式来使这种sql也能使用索引,下面是一个简单的测试:SQL> create table t as select * from dba_objects;表已创建。SQL> create index idx_t_id1 on t(object_id);索引已创建。SQL原创 2011-12-20 21:16:33 · 4515 阅读 · 0 评论 -
Oracle 11g 新特性 -- Invisible Indexes(不可见的索引) 说明
转载自:http://blog.youkuaiyun.com/tianlesoftware/article/details/8223775一.Invisible Indexes 说明从版本11g 开始,可以创建不可见的索引。优化程序会忽略不可见的索引,除非在会话或系统级别上将 OPTIMIZER_USE_INVISIBLE_INDEXES 初始化参数显式设置为TRUE。此参数的默认值是FALSE。转载 2013-01-06 17:03:14 · 1259 阅读 · 0 评论 -
估算B树索引大小、B树索引外键列
1、估算索引的大小SQL> set serveroutput on;SQL> exec dbms_stats.gather_table_stats(user,'t1');PL/SQL 过程已成功完成。SQL> variable used_bytes number;SQL> variable alloc_bytes number;SQL> exec dbms_space.cre原创 2013-03-04 16:32:09 · 635 阅读 · 0 评论 -
监控表及索引!
监控索引:SQL> alter index TEST_PK monitoring usage; --监控索引索引已更改。SQL> select * from v$object_usage; --查看INDEX_NAME TABLE_NAME MON USE START_MONITORING原创 2011-11-28 20:26:57 · 788 阅读 · 0 评论 -
Oracle全文索引!
首先创建两个表:SQL> create table t1(id int,name varchar(10),value varchar(10)); 表已创建。 SQL> insert into t1 values(1,'a','aa a'); 已创建 1 行。 SQL> insert into t1 values(1,'b','bb b'); 已创原创 2011-11-24 19:35:33 · 742 阅读 · 0 评论 -
oracle 反向键索引的原理和用途(减少索引热点块)!
我们知道Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按顺序(递增或递减)加入的情况,默认的B-Tree索引并不理想。这是因为如果索引列的值具有严格顺序时,随着数据行的插入,索引树的层级增长很快。搜索索引发生的I/O读写次数和索引树的层级数成正比,也就是说,一棵具有5个层级的B -Tree索引,在最终读取到索引数据时最多可能发生多达5次I/O操作。因而原创 2012-03-05 16:52:35 · 18398 阅读 · 2 评论 -
索引组织表(index organized table, IOT)
1、索引组织表索引组织表(index organized table, IOT)就是存储在一个索引结构中的表。存储在堆中的表是无组织的(也就是说,只要有可用的空间,数据可以放在任何地方),IOT中的数据则按主键存储和排序。对你的应用来说,IOT表和一个“常规”表并无二致。IOT有什么意义呢?使用堆组织表时,我们必须为表和表主键上的索引分别留出空间。而IOT不存在主键的空间开销,因为索引原创 2013-01-06 15:18:55 · 1800 阅读 · 0 评论 -
Oracle11新特性——虚拟列
Oracle11g增加了表的虚拟列,这个列的数据并没有存储在数据文件中,而是Oracle通过列数据的生成放到了数据字典中。虚拟列减少了使用触发器的需要。在虚拟列上创建的索引将是基于函数的索引,事实上可以用添加一个虚拟列并对它创建索引的办法,代替在表中的一个或多个列上创建基于函数的索引。看一个简单的虚拟列的例子:SQL> CREATE OR REPLACE FUNCTION F_GE转载 2013-03-05 11:45:14 · 798 阅读 · 0 评论 -
B树索引和位图索引的区别!
B树索引主键和唯一性约束字段的B树索引,效率几乎和海量数据没有关系。键值重复率低的字段比较适合使用B树索引。位图索引键值重复率高的字段比较适合使用位图索引。count、and、or、in这些特定的操作更适合位图索引。DML操作比较多的表不适合使用位图索引。复合索引在where条件中必须带驱动列,复合索引才会使用。键值重复率低(DISTINCT数量原创 2011-11-24 17:07:22 · 8650 阅读 · 1 评论 -
转储B*Tree索引的分枝结构!
转储索引结构:SQL> select i.index_name,i.table_name,i.blevel from user_indexes i where i.index_name = 'IDX_T1_ID';INDEX_NAME TABLE_NAME BLEVEL----------------原创 2012-06-27 17:42:35 · 968 阅读 · 0 评论 -
Oracle 11g 新特性 -- 虚拟索引!
在数据库优化中,索引的重要性不言而喻。但是,在性能调整过程中,一个索引是否能被查询用到,在索引创建之前是无法确定的,而创建索引是一个代价比较高的操作,尤其是数据量较大的时候。虚拟索引(Virtual Index)不是物理存在的,它并不会创建实际的索引段,只是在数据字典中加了一个索引的记录,使得优化器能够意识到一个索引的存在,从而判断是否使用该索引作为访问路径。当然,实际上最终查询的访问路径是不转载 2013-01-08 11:23:53 · 967 阅读 · 0 评论