深度分析ORACLE热点块问题(转)
从oracle原理上分析块buffer的处理[@more@]热点块的定义数据库的热点块,从简单了讲,就是极短的时间内对少量数据块进行了过于频繁的访问。定义看起来总是很简单的,但实际在数据库中,我们要去观察或者确定热点块的问题,却不是那么简单了。要深刻地理解数据库是怎么通过一些数据特征来表示热点块的,我们需要了解一些数据库在这方面处理机制的特性。数据缓冲区的结构我们都知道,当查询开始的时候,进程首先去数据缓冲区中查找是否存在查询所需要的数据块,如果没有,就去磁盘上把数据块读到内存中来。在这个过程中,涉及到数据缓冲区中
ZT 利用rowid快速在线更新海量数据
http://www.itpub.net/thread-1052077-1-2.html[@more@]最近一直在折腾大表的更新问题,今天终于有了突破。兴奋之余发个帖子跟大家分享一下心得,并且讨论一下是否还可能进一步提高处理速度。问题是这样的:一张5亿条记录的表,没有分区。由于增加了一个冗余字段,需要根据另外一张表(4.8亿条)更新这个大表。下面是具体的描述:环境:HP-UX 11i+Oracle9.2.0.8+RAID要更新的表:T1 (id1 number, id2 number, curr_count number,.....) --id1唯一 5亿条记录 >60GB更新数据来源:T2 (id2 number, curr_count number) --id2唯一 4.
ZT oracle全文索引
全文索引通常用在文本或网页搜索中,比如类似对 "大学生活真好!" 或者一个文件进行索引,查询方法跟使用平常的SELECT的区别是,需要在WHERE条件中使用一个特定的操作符,全文索引分几个类别,分别使用于不同的搜索环境,不同的类别使用不同的操作符进行搜索.没有全文索引时,这类查询通常用下面的sql查询: SELECT id,doc FROM table WHERE doc like ‘%国家%’;[@more@]全文索引通常用在文本或网页搜索中,比如类似对 "大学生活真好!" 或者一个文件进行索引,查询方法跟使用平常的SELECT的区别是,需要在WHERE条件中使用一个
ZT 定位导致物化视图无法快速刷新的原因
作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2005.01.09 22:37分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/13318[@more@]作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2005.01.09 22:37分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/13318物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新。因此快速刷新是物化视图刷新方式的首选。 但是快速刷新具有较多的约束,而且对于采用ON COMMIT模式进行快速刷新的物化视图更是如此。对于包含聚集和包含连
Oracle基本数据类型存储格式浅析(四)——ROWID类型
作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2004.12.21 19:14分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/11046---------------------------------------------------------------[@more@]Oracle的ROWID用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址。Oracle的ROWID分为两种:物理ROWID和逻辑ROWID。索引组织表使用逻辑ROWID,其他类型的表使用物理ROWID。其中物理ROWID在Oracle的8版本中进行了扩展,Oracle7及以下版本使用约束ROWID,Oracle8及以上版本使用扩展ROWID。本文描述物理扩展
ZT oracle10g新特性——物化视图
本文详细介绍oracle10g新特性——物化视图[@more@]Advisor 在10g将查询重写并且引进了新的强大的调优建议者使管理物化视图变得容易多了。 物化视图(Materialized Views MVs),也被称为快照,现在已经被广泛应用了。MV将一个查询的结果存储在一个段中,并且当用户提交查询时返回查询结果,而不需要重新执行查询——如果查询会被执行多次(经常出现在数据仓库环境中),这就会非常有效。MV可以从基础表中完全刷新或通过使用快速刷新机制增量刷新。 假如你有如下定义的MV:create materialized view mv_hotel_resvrefresh fastenabl
Oracle10g新特性:使用DBMS_SQLTUNE优化SQL
作者: NinGoo(http://ningoo.itpub.net)发表于: 2007.04.30 10:51分类: Oracle 出处: http://ningoo.itpub.net/post/2149/284636---------------------------------------------------------------[@more@]在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等,当然也有SQL调优辅助工具可以使用,只是要么价格昂贵,要么效果不佳。在10g中,Oracle推出了自己的SQL优化辅助工具,这就是新的DBMS_SQLTUNE包。执行DBMS_SQLTUNE包进行sql优化需要有advisor的权限:grant">SYS@ning>grant advi
Data Warehouse Guide阅读笔记(八):materialized view之一
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.12.13 17:05分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/240472---------------------------------------------------------------[@more@]通常,在数据仓库中可以通过创建摘要信息(summary)来提升性能。这里的摘要指的是预先对一些连接(join)和聚合(aggregation)进行计算并将结果保存下来,后续查询的时候可以直接利用保存的摘要信息来生成报表。在oracle中,可以利用物化视图(materialized view)来创建数据仓库中的摘要。物化视图另外一种重要的功能是复制数据。结合o
Data Warehouse Guide阅读笔记(七):partition table
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.29 00:25分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/224551---------------------------------------------------------------[@more@]分区表(partition table)在数据仓库中的重要性不言而寓,数据仓库的事实表中的数据量一般都比较大,而且很多时候是和时间相关的历史数据,使用范围分区是最合适的,但有时也要结合实际考虑其他的分区方式。分区有三种基本的方式:range,hash和list。某个分区还可以继续进行子分区,所以,上面三种基本的分区还可以组成两种组合分区
Data Warehouse Guide阅读笔记(六):unique constraint & unique index
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.25 10:10分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/223696---------------------------------------------------------------[@more@]一般情况下,unique constraint都是通过unique index来实现的。但是在数据仓库中,由于数据量巨大,建立一个索引可能需要花费相当大的时间和空间,假如查询中又用不上这个索引的话,那么建立索引的高代价却没有带来什么收益,这是很不划算的。举个例子,假如有一个sales表,其中sales_id的数据是唯一的,我们在sales_id上建一个un
Data Warehourse Guide阅读笔记(五):Bitmap join index
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.24 17:04分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/223616---------------------------------------------------------------[@more@]Bitmap index的主要思想就是,针对每一个可能的值x,建立一个或一组位图映射,每个bit为1代表这个位置的值等于x,为0则不等于x。而每个位置都可以直接映射到某一行的rowid。由于在执行DML操作时,锁定的是整个bitmap,而不是bitmap中的某个位,所以bitmap index对于并发DML的性能很差,而且频繁的DML操作会使得bitmap index的空间
Data Warehouse Guide文档笔记(四):dimension
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.22 23:13分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/223164---------------------------------------------------------------[@more@]要理解oracle中的dimension,首先要搞清楚dimension和dimension table之间的区别。dimension table是table,和关系数据库中的其他table一样,存放数据,需要实际的存储空间。而dimension则只是一个逻辑结构,定义了dimension table中的一个列或一组列于其他列之间的一个层次关系,dimension只保存定义,可以将其理解为一种特定的c
Data Warehouse Guide文档笔记(三):RELY constraints
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.22 21:18分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/223139---------------------------------------------------------------[@more@]数据仓库中的数据,一般是通过ETL定期load进来的。在做ETL的时候,一般会对load的数据的一致性做检查。所以,我们有理由认为,数据仓库中的数据都是符合一致性要求的。那么,在数据仓库中的表上还有必要加constraint么? 既然我们已经可以确定数据仓库中的数据是一致的,那么应该就没有必要再在表上建constraint了,constraint对D
Data Warehouse Guide文档笔记(二):star schema
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.21 19:10分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/223007---------------------------------------------------------------[@more@]数据仓库这么多年来发展的成果,我认为恐怕最重要的要算star schema了,可以说它是整个数据仓库的基石。 star schema主要的思想在于将我们关心的数据和用于描述数据的属性分隔开来。实际的数据存放于Fact table中,从不同角度来描述数据的属性放到不同的dimension table中。比如,一个sales数据仓库可以这样设计,每一笔销售记录,
Data Warehouse Guide文档笔记(一):Data warehouse和OLTP系统的对比
作者: NinGoo(http://ningoo.itpub.net)发表于: 2006.10.21 13:48分类: DW&BI 出处: http://ningoo.itpub.net/post/2149/222935---------------------------------------------------------------[@more@]新的工作主要专注于数据仓库的构建,因此开始阅读oracle的data warehouse guide文档,随便在这里记下一点笔记。希望能够坚持看完。Oracle10g Data Warehouse Guide链接如下:http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14223/toc.htm和OLTP系统不同,数据仓库的主要目的是用于查询和分析数据。因此,数据仓库
ZT 物化视图详解
作者 yangtingkun[@more@]Oracle8i版本开始提供可以创建实体化视图即物化视图(MATERIALIZED VIEW),它确实存放有物理数据。物化视图包含定义视图的查询时所选择的基表中的行。对物化视图的查询就是直接从该视图中取出行。在olap环境中,mview是以空间换时间的一种有效手段,更少的物理读/写,更少的cpu时间,更快的响应速度,所以它不适合高端的oltp环境;在oltp环境中,规模较大的报表适合使用mview来提高查询性能。数据仓库中的物化视图主要用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这
ZT oracle 分区表数据定期迁移到其他数据库测试方案
源数据库保存在线数据和一周的日志数据以供查询,历史数据库保存三个月的历史数据以供查询,每天大概会产生1000万的日志记录,计划日志表通过按照周建立分区进行数据的迁移。[@more@]--新数据库的规划的exp_test的设计:--第一次使用,创建全部三个数据表空间和索引表空间,以后每周增加下周要使用的新分区,移出上上周的数据到31数据库--计划表exp_test是按照日期建立的每周一个的范围分区,将每周的周一的日期拼在分区的名字里面,--便于自动处理。--第一次使用,创建三个的数据表空间和索引表空间,大小按照每周的容量建,减少表空间自
ZT 写有效的历史数据迁移sql
利用分页技术,分批对历史数据迁移,适用于没分区的大表,以后有空实际测试下性能[@more@]对于高并发oltp系统,生产库可能只需保留当前几个月的数据,之前的数据要全部迁移到历史库中。那么,如何处理这样的需求,如何写合适的历史迁移程序呢?1.常规写法begin--迁移数据insert into tb_usersselect *from tb_users_dbc awhere gmt_modified <= trunc(sysdate) - v_day and rownum<5000000;--删除原表数据 delete from tb_users_dbcwhere gmt_modified <= trunc(sysdate) - v_day and rownum<5000000;commit;end;2.使用for循环
ZT 迁移案例一: oracle 8i 文件迁移
ZT http://space.itpub.net/7199859/viewspace-464611[@more@] 前两天去客户那,因为客户使用到的盘柜存储通过检测发现可能有问题,为了防止数据文件丢失 需要迁移到好的存储硬盘上 客户版本是oracle8i+IBM aix 平台 需要迁移的有控制文件,数据文件,重做日志文件 首先关闭数据库1.控制文件迁移1.1 修改初始化参数 vi init.ora 使控制文件参数对应上新迁移的目录1.2 拷贝控制文件到新目录下cp /oradata/oradata1/control01.ctl /oradata4/ora8idata/ .cp /oradata/oradata2/control02.ctl /oradata4/ora8idata/.cp /oradata/oradata3
ZT 3000万数据成功迁移
=========================================================== 作者: weiranjie(http://weiranjie.itpub.net)发表于: 2008.02.22 16:39分类: oracle 技术 出处: http://weiranjie.itpub.net/post/26925/455596--------------------------------------------------------------- 方法一: exp 方法二 : create table aa as 方法三 : spool ,sqlldr 本文介绍了方法2和方法3,方法2中主要介绍了并行[@more@]方法三 : spool ,sqlldr more sm_send10150_his.sh#!/bin/sh. $HOME/.profilesqlplus -S crbt/crbt <<!SET HEADING OFF;SET