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
zt 跨平台 跨版本 大规模数据迁移
ZT =========================================================== 作者: weiranjie(http://weiranjie.itpub.net)发表于: 2008.09.05 14:21分类: oracle 技术 出处: http://weiranjie.itpub.net/post/26925/470236--------------------------------------------------------------- [@more@]昨天在 pub 上看到一个问题,oracle 9i 如果600G 的资料库需要进行最短时间的跨平台(windows 到unix) 停机(12 小时)迁移,该如何进行数据迁移 ?请教了 biti 作了一下测试prebuilt mv 做大表,小表直接 dblink insert ,数据库30分钟足够了利用preb
zt 通过备份实现可传输表空间(TTS From Backup with RMAN)
作者 tomszrp 21:02 | 静态链接网址 | 最新回复 (0) | 引用 (0) | 磨刀石[@more@]前言在Oracle 10g前,我们实现TTS,一般的处理步骤是:1、在源数据库上将需要传输的表空间置为只读(read only)状态;2、uses export utility to dump the tablespace metadata.3、将数据文件复制到目的路径,文件使用FTP,裸设备用dd和FTP命令进行复制。 4、use the import utility(imp) to import the metadata from the dumpfile5、在目标数据库上将该表空间设置读写(read write)状态. 在10g前,Transport TableSpace也同样有很多限制,比如1)不能
ZT 升级和移植Oracle数据库方法若干
升级数据库和迁移数据库是DBA日常工作中最常见的两种。升级数据库和迁移无非也就是两种方式,一种是从老数据库中exp出,然后在新数据库中导入。另外一种就是使用startup upgrade升级数据库。另外借助于Oracle Rman工具也是能事半功倍的。[@more@] If you want upgrade your oracle 8i database to 10g, you need make sure upgrade oracle 8i to 8.1.7 frist.COMPATIBILITY MATRIX===============================================================+ Minimum Version of the database that can be directly upgraded to Oracle 10g Rel
ZT Toad for Oracle的使用
1.Logminer2.log switch frequency map3.generate schema script[@more@] 很少用到logminer这个工具,主要是感觉比较复杂,其实在toad中也提供了logminer的使用,图形界面总之会简单许多.1.)事先的准备工作sys@TEST> conn scott/tiger@test已连接。scott@TEST> select table_name from user_tables;?TABLE_NAME------------------------------BONUSSALGRADEDUMMYBIRTHDAYSADDRESSDEPTEMP?已选择7行。?scott@TEST> drop table address;?表已删除。?scott@TEST> drop table birthdays;?表已删除。?scott@TEST> conn sys/oracle@
RMAN中include current conrtrolfile在9i和10g的不同
9i完全备份不包含最新控制文件导致RMAN-06023的解决方案[@more@]现在我们在来看一下9i中同样的情况(1)进行全库的备份RMAN> run{2> allocate channel C1 device type disk;3> backup full database format 'E:%U.dbf' include current controlfile;4> sql 'alter system archive log current';5> release channel C1;6> }?正在使用目标数据库控制文件替代恢复目录分配的通道: C1通道 C1: sid=16 devtype=DISK?启动 backup 于 05-4月 -07通道 C1: 正在启动 full 数据文件备份集通道 C1: 正在指定备份集中的数据文件在备份
ZT 通过MOVE PARTITION来回收已经使用的空间
主要讨论的是分区表中的分区移动来实现数据空间的回收。[@more@]ORACLE 10G中,对于空间的回收利用已经有了很大的提高,这里讨论的只限于在线系统的空间回收,而对于应用可以停的回收方法,比如CTAS然后TRUNCATE原表,然后再把表RENAME回来这样类似的方法不做讨论。对于但表的回收技巧,比如MOVE、SHRINK等也不错过多的描述,只需要提醒大家注意的是MOVE会锁表,所以在线系统请谨慎使用,而且MOVE后,表上相关的索引会失效。虽然表的MOVE有ONLINE选项可以使用,但这个ONLINE只能用在IOT的表上,而普通表不能使用。另外使用SHRINK的时候,表
循环插入多表的insert语句 answered by 三思
有三个表,表A , 表B, 表C。这3个表,都有4个字段,并且这4个字段名称都一样,分别是:ID NAME CODE MESSAGE。我现在要做以下操作:每一个表都同时插入5条数据。其中这5条数据当中,前两列是一样的,第三列的数据是1--5,而最后一列的值是固定的。 例如:表A: ID NAME CODE MESSAGE 0001 xiaoming 1 140 0001 xiaoming 2 112 0001 xiaoming 3 84 0001 xiaoming 4 56 0001 xiaoming 5 28、表B: ID NAME CODE MESSAGE 0001 xiaoming 1 55