Oracle20060626.docx
《Oracle20060626.docx》由会员分享,可在线阅读,更多相关《Oracle20060626.docx(15页珍藏版)》请在优知文库上搜索。
1、OraeIe-快速删除重复的记录做工程的时候,一位同事导致揖的时候,不小心把一个表中的数据全都搞里了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万税的.而且是生产系统。也就是说,不能把所有的记录都删除,而且必须快速的把重复记录剧掉.我此,总结了一下部除IE复记录的方法,以及每种方法的优能点.为了陈诉方便,假设表名为Tb1.表中有三列CO1.1.co1.2.coI3.其中CO1.I.co1.2是主键,并且.co1.1.,co1.2上加了索引。1.通过创立崂时表可以杷数据先导入到一个临时表中,然后初除原求的数据,理把数据导回原表.SQ1.语句如下:createtab1.etb1.
2、_tnp(se1.ectdistinct*fr011tb1.);truncatetab1.etb1.;清空表记录insertintotb1.se1.ect*fromtb1.tnp;/将他时表中的数据插回来.这种方法可以实现需求,但是很明显,对于一个千万级记录的表.这种方法很慢,在生产系铳中,这会给系统带来很大的开销,不可行.2、利用rowid在OraC1.e中.每一条记录都有一个rid.rowid在整个做据串中是唯一的.rowid确定了等好记录悬OraCIC中的薪一个数据文件、块.行上.在重复的记录中,可能所有列的内容都相同,但rowid不会相同.SQ1.语句如下:de1.etefromtb1
3、.whererowidin(se1.ecta.rowidfromtb1.a.tb1.bwherea.rowidb.rowidanda.co1.1.=b.co1.1.anda.co12=b.co1.2)如果已拄知道得条记录只有一条重复的,这个SqI语句适用.但是如果每条记录的重复记录有N条,这个N是未知的,就要考虑适用下面这种方法了。3.利用max或min语数这里也要使用roid.与上面不同的是给合InaX或min函数来实现.SQ1.语句如下de1.etefromtb1.awhererowidnotin(se1.ectmax(b.rowid)fromtb1.bwherea,co1.1.=b.co
4、1.1.anda.co1.2=b.COI2):/这里BaK使用min也可以或者用下面的语句de1.etefromtb1.awhererowidBtb1.whererowidnotin(se1.ectmax(rowid)fromtb1.tgroupbyt.co1.1.t.co1.2);de1.etefromtb1.where(co1.1.,co12)in(se1.ectco1.1,co1.2froratb1.groupbyco1.1.co1.2havingcount()1)androwi1)还有一种方法,对于表中有重复记录的记荥比较少的,并且有索引的情况,比较适用。但定co1.1.,co1.2上
5、有安引,并且Ib1.表中有更复记录的记录比较少.SQ1.语句如下4,利用grouphy.梗商效率Orac1.e物理结构故障的处理方法:Orac1.e物理结构故障是指构成数据库的各小物理文件损坏而导致的各种数据库故障。这些故障可能是由于使件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,妞果是硬件故獐则首先妾留决硬件问题。在无硬件问题的前找下我们才能按照下面的处理方发来进一步处理。控制文件般坏:控制文件记录了关于QraC1.e的更要配置信息,如数据阵名.字符集名字,各个数据文件、日志文件的位置等等恬息。控制文件的期坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,
6、这是一种比较严重的结误.可以通过查询数据库的日志文件未定位报坏了的控制文件。日志文件位于ORAC1.EBSEadmin/bdiuip/a1.ert_ORC1.ora.提坏单个控制文件:1 .确保或搪库已经关闭,如果没有用下面的命令来关诩战樨库:Svnigr1.shutdownimnedia1.e:2 .杳看初始化文件?ORAC1.EBASEZadminp.琏定所有控制文件的路径。3 .用操作系统命令将其它正稳的控制文件期差错误的控制文件.4 .用下面的命令亘新启时数据库svr三gr1.startup:5 .用适当的方法进行数据库全各份。损坏所有的控制文件:1 .确保数据库已经关闭.如果没有用下
7、面的令令来关闭败据库:svrgr1.shu1.downimnediatc;2 .从相应的备份转果集中恢复量近的控制文件.对于没有采用带库备份的点可以直接从松楷上将最近的控制文件备份恢复到相应目录:对于采用带库备份的点用相应的rman牌水未恢宏最近的控制文件,3 .用下面的命令来创立产生起据库控制文件的脚本:svr-Bgr1.startumount:svr三gr1.a1.terdatabasebackupcontro1.tracenoreset1.ogs;4 .修改第三步产生的trace文件,将其中关于创立控制文件的一局部语句挎贝出来并做些修改.使得它能够表达最新的数据库结构。假设产生的Sq1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle20060626
