博学,审问,慎思,明辨,笃行

导航

2014年3月16日 #

Oracle 深入理解Oracle中的latch(转)

摘要: 转自:http://czmmiao.iteye.com/blog/1473965串行化概述串行化 - 数据库系统本身是一个多用户并发处理系统,在同一个时间点上,可能会有多个用户同时操作数据库, 多个用户同时在相同的物理位置上写数据时,不能发生互相覆盖的情况,这叫做串行化,串行化会降低系统的并发性,但这对于保护数据结构不被破坏来说则是必需的。在Oracle数据库中,通过闩锁(latch)和锁定(lock)来解决这两个问题。闩锁和锁定既有相同点又有不同点。相同点在于它们都是用于实现串行化的资源。而不同点则在于闩锁(Latch)是一个低级别、轻量级的锁,获得和释放的速度很快,以类似于信号灯的方式实现 阅读全文

posted @ 2014-03-16 23:04 pengdaijun 阅读(197) 评论(0) 推荐(0) 编辑

Oracle 的data block内容研读(转)

摘要: 转自:http://blog.itpub.net/758322/viewspace-688379DataBlock是Oracle中存储数据块的最小存储单元,由多个os数据块组成。主要由三个逻辑层组成(通过c语言描绘的结构,如下图一所示):the cache layer,the transaction layer,data layer。如果再细化,data layer又分为很多结构,如table directory,row directory,free space,row data等。所有数据最终都是存储在block中。它也被称为逻辑blocks或是页(pages)。每个操作系统都有自己的blo 阅读全文

posted @ 2014-03-16 22:58 pengdaijun 阅读(729) 评论(0) 推荐(0) 编辑

Oracle中的rownum和rowid(转)

摘要: 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇。rowid与rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中是唯一的。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有ro 阅读全文

posted @ 2014-03-16 22:51 pengdaijun 阅读(203) 评论(0) 推荐(0) 编辑

Oracle 临时表空间组(转)

摘要: 临时表空间组概述在 oracle 10g 中,可以创建多个临时表空间,并把它们组成一个临时表空间组,这样应用数据用于排序时可以使用组里的多个临时表空间,一个临时表空间组至少有一个临时表空间,其最大个数没有限制,组的名字不能和其中某个表空间的名字相同。临时表空间组是在创建临时表空间时通过指定group字句创建的,如果删除组中的全部临时表空间,那么这个组也将消失。我们将可以将一个表空间从一个组移动另一个组,或是从一个组中删除临时表空间,或是往组里添加新的表空间。使用临时表空间组,有如下的优点:1.数据库层面可以同时指定多个临时表空间,避免当临时表空间不足时所引起的磁盘排序问题;2.当一个用户同时有 阅读全文

posted @ 2014-03-16 22:35 pengdaijun 阅读(239) 评论(0) 推荐(0) 编辑

Oracle 收集统计信息(转)

摘要: 1.理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划。优化器统计信息包括:表的统计信息行数Block数行平均长度列的统计信息列中不同值的数量列中null的数量数据分布(柱状图/直方图)索引的统计信息叶子块的数量索引的高度聚簇因子(clustering factor)系统的统计信息I/O性能和利用CPU性能和利用优化器统计信息存储在下列数据字典中DBA_TABLESDBA_OBJECT_TABLESDBA_TAB_STATISTICSDBA_TAB_COL_STATISTICSDBA_TAB_HIS 阅读全文

posted @ 2014-03-16 22:20 pengdaijun 阅读(478) 评论(0) 推荐(0) 编辑

Oracle 行连接和行迁移(转)

摘要: 行迁移:当一个行上的更新操作(原来的数据存在且没有减少)导致当前的数据不能在容纳在当前块,我们需要进行行迁移。一个行迁移意味着整 行数据将会移动,仅仅保留的是一个转移地址。因此整行数据都被移动,原始的数据块上仅仅保留的是指向新块的一个地址信息。 产生:update行链接:当一行数据太大而不能在一个单数据块容纳时,行链接由此产生。举例来说,当你使用了4kb的Oracle 数据块大小,而你需要插入一行数据是8k, Oracle则需要使用3个数据块分成片来存储。因此,引起行链接的情形通常是,表上行记录的大小超出了数据库Oracle块的大小。 产生:insert 表上使用... 阅读全文

posted @ 2014-03-16 21:31 pengdaijun 阅读(719) 评论(0) 推荐(0) 编辑

Oracle 数据块 Block 说明(转)

摘要: 转自:http://www.cnblogs.com/spring3mvc/archive/2011/05/12/2414623.html Oracle Database manages the logical storage space in the data files of a database in units calleddata blocks, also calledOracle blocks or pages.A data block is the minimum unit of database I/O.一. Data Blocks and Operating System B. 阅读全文

posted @ 2014-03-16 21:02 pengdaijun 阅读(794) 评论(0) 推荐(0) 编辑