摘要: _b_tree_bitmap_plans修改语句alter system set "_b_tree_bitmap_plans"=false scope=both此语句用处_b_tree_bitmap_plans参数是指是否将索引转换为bitmap索引然后执行更具熊哥讲解,如有两个字段A,B都有btree索引,oracle有可能将这两个索引转换成bitmap索引然后做and操作得出结果集。如果改为false就会选用其中的一个索引,走btree的索引删除一个索引后就正常了 阅读全文
posted @ 2014-03-20 21:53 princessd8251 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 转自 http://blog.itpub.net/1384/viewspace-342874/记得在tom的oracle 9i&10g编程艺术中这样一句话:在一个非唯一索引中,oracle会把rowid作为一个额外列加到键上,使索引键为唯一; 先按索引键排序,再按rowid升序排序;在一个唯一索引中,不会再加rowid到索引键上。今天有时间验证一下,呵呵。验证:非唯一索引,oracle会把rowid作为一个额外列加到键上,使索引键为唯一;先按索引键排序,再按rowid升序排序SQL> create table test_nounique(a number);Table creat 阅读全文
posted @ 2014-03-20 18:55 princessd8251 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 转自 http://www.360doc.com/content/09/1103/13/397210_8325689.shtml1.B树索引的相关概念索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不 过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于 该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了加快对数据的搜索速度,也可以用来保证数据的唯一性。但是,索引作为一种可选的数据结构,你可以选择为某个表里的创建索引,也可 阅读全文
posted @ 2014-03-20 18:54 princessd8251 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 假如聚簇因子过大,那么重建索引可能会有好处,聚簇因子应该接近块的数量,而非行的数量。 B-tree索引: ·索引会随着时间的增加而变的不平衡; ·删除的索引空间不会被重用; ·随着索引层数的增加,索引将会变得无效并需要重建; ·聚簇因子差,索引需要重建; ·为了提高性能,索引需要经常重建; 索引基础 ·一个更新由一个删除和一个插入组成; ·页块由索引条目(row header(2/3B)|length(1B)|indexed data value(nB)|length(1B)|RowID(6B))和相应的rowid组成; & 阅读全文
posted @ 2014-03-20 18:04 princessd8251 阅读(587) 评论(0) 推荐(0) 编辑
摘要: Disable the auto stats job in 11g.SQL> select client_name,status from Dba_Autotask_Client;CLIENT_NAME STATUS------------------------------------------... 阅读全文
posted @ 2014-03-20 17:49 princessd8251 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 转自 http://blog.csdn.net/ballontt/article/details/17548991Oracle中为了提高sql的执行效率,需要减少硬解析,实现shared cursor共享,最常见的方法是使用绑定变量,但很多时候由于各种原因未能在开发初期使用绑定变量,对于减少硬解析的目的,退而求其次地方法是设置cursor_sharing.1.准备环境实验环境BALLON@PROD> select * from v$version;BANNER----------------------------------------------------------------O 阅读全文
posted @ 2014-03-20 15:43 princessd8251 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 今天看到个帖子,关于索引中是否包含ROWID,做个DUMP跟踪下看,以下为详细的跟踪记录:SQL> create table test as select rownum a ,'c' c from dual connect by level create index u_test on test(a);Index createdSQL> select extent_id,file_id,block_id from dba_extents where segment_name='U_TEST';EXTENT_ID FILE_ID BLOCK_ID--- 阅读全文
posted @ 2014-03-20 03:28 princessd8251 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/robinson1988/article/details/5396595今天在研究Bitmap Index internal的东东,不过刚开始就被卡住了,dump出来了bitmap index 根据DSI知道有个叫start rowid,end rowid的东东,却不能将rowid还原回file_id,block_id。现在终于搞懂了呵呵,写出来分享下。哎,前面的路还很长,很长..................SQL> create table test(name varchar2(100),age number);表已创建。SQL> 阅读全文
posted @ 2014-03-20 03:24 princessd8251 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/stevendbaguo/article/details/8215225本地有个pub_department的表,索引为PK_PUB_DEPARTMENT。1.找到object_idselectobject_idfromdba_objects swhere s.object_name='PK_PUB_DEPARTMENT';OBJECT_ID----------644082.进行转储altersessionsetevents'immediate trace name treedump level 64408';--- 阅读全文
posted @ 2014-03-20 03:22 princessd8251 阅读(120) 评论(0) 推荐(0) 编辑
摘要: SQL> drop table test;表已删除。SQL> create table test as select * from dba_objects where 1!=1;表已创建。SQL> create index idx_test_id on test(object_id);索引已创建。S... 阅读全文
posted @ 2014-03-20 03:18 princessd8251 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 还原DUMP出来的数字SQL> select dump(2000,16) from dual;DUMP(2000,16)------------------Typ=2 Len=2: c2,15SQL> declare n number; 2 begin 3 dbms_stats.convert_ra... 阅读全文
posted @ 2014-03-20 01:49 princessd8251 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.csdn.net/leshami/article/details/6931886ROWID 是一个类似于rownum的伪列,用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。而对于聚簇表,由于聚簇特性,不同表上的记录由... 阅读全文
posted @ 2014-03-20 01:25 princessd8251 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.eygle.com/archives/2005/02/eabtreeeeoooeie.htmlJonathan Lewis在他的文章中,奇妙的利用B*Tree索引分裂的原则,通过24条记录就成功的构造出了24层的索引结构,从而验证了B*Tree索引的最大允许高度。通常我们按照升序创建索引条目,索引会一直向右扩展;可是如果反过来,索引将会向左扩展。这样,除了最左面一个Branch会有两个Leaf节点以外,所有Branch就只有一个Leaf节点。我采用Oracle9.2.0.4,测试表空间Block_Size大小为2K.背景文章:1.B*Tree索引能有多高?--推荐Jo 阅读全文
posted @ 2014-03-20 01:13 princessd8251 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.itpub.net/21818314/viewspace-693214这是一个实验总结帖,包括联合索引的实验 和总结。我们是以邮件的形式发送和回复的 所以只能隐去真实姓名 请见谅。请自底到顶阅读 。=============================================================我X ,这个帖子好,前一段时间还因为判断数据的问题伤神呢,算来算去都算不明白。发件人: A(运维部\DBA\XXX)发送时间: 2011年3月10日 17:43收件人: B(开发部\XXX); C(运维部\DBA\XXX); D(运维部\DBA\XXX 阅读全文
posted @ 2014-03-20 01:03 princessd8251 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 搭建环境:SQL> create table tt as select * from dba_objects;表已创建。SQL> select count(*) from tt;COUNT(*) ----------50441SQL> insert into tt select * from tt;已创建50441行。SQL> /已创建100882行。SQL> /已创建201764行。SQL> /已创建403528行。SQL> /已创建807056行。SQL> create index tt_index on tt(object_id) tabl 阅读全文
posted @ 2014-03-20 00:43 princessd8251 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: 索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了加快对数据的搜索速度。 但是,索引作为一种可选的数据结构,你可以选择为某个表里的创建索引,也可以不创建。这是因为一旦创建了索引,就意味着oracle对表进行DML(包括INSERT、UPDATE、DELETE)时,必须处理额外的工作量(也就是对索引结构的维护)以及存储方面. 阅读全文
posted @ 2014-03-20 00:13 princessd8251 阅读(253) 评论(0) 推荐(0) 编辑