频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Oracle的更新操作优化(1)

作者: 佚名 出处:中国IT实验室 2008-03-04 14:02    砖    好    评论   进入论坛
阅读提示:根据远端数据库中几张表的关联结果来刷新本地表中一个字段的值。如果本地表中记录的ID在远端表关联中可以查询的到,则这条记录的相应字段更新为1,否则如果对应记录在远端无法查询到记录,则这个字段更新为0。

首先描述一下更新的要求,根据远端数据库中几张表的关联结果来刷新本地表中一个字段的值。如果本地表中记录的ID在远端表关联中可以查询的到,则这条记录的相应字段更新为1,否则如果对应记录在远端无法查询到记录,则这个字段更新为0。

这个需求比较简单,但是被更新表是物化视图复制的基表,需要将修改复制到多个远端物化视图中,因此,为了避免将过多不必要的修改传播到远端站点,这里有一个额外的要求,只更新当前状态不正确的记录。也就是说,更新之前要判断更新前和更新后是否一样,只有二者不一样才需要更新。

最后一点要求是不建立临时表,使用SQL或者PL/SQL来尽量高效的实现这个功能。不使用临时表的要求是处于两点考虑,一是由于需求本身很简单,写SQL或PL/SQL最多也就十几行而已,为这么简单的需求建立一个临时表没有什么必要;另外一点是由于当前数据库版本为9204,INSERT INTO SELECT插入临时表存在bug,产生的REDO比插入普通表还要高,详细情况可以参考:临时表产生REDO过多的bug:http://yangtingkun.itpub.net/post/468/450680

下面还是通过例子来详细说明:

SQL> CONN YANGTK/YANGTK@YTK102已连接。

SQL> CREATE TABLE T1 AS SELECT ROWNUM ID, A.* FROM DBA_OBJECTS A;

表已创建。

SQL> ALTER TABLE T1 ADD PRIMARY KEY (ID);

表已更改。

SQL> CREATE TABLE T2 AS SELECT ROWNUM ID, B.* FROM DBA_SYNONYMS B;

表已创建。

SQL> CREATE INDEX IND_T2_ID ON T2(ID);

索引已创建。

SQL> ALTER TABLE T2 MODIFY ID NOT NULL;

表已更改。

SQL> CREATE TABLE T3 AS SELECT ROWNUM ID, C.OWNER, C.TABLE_NAME, C.COLUMN_NAME

2 FROM DBA_TAB_COLUMNS C;

表已创建。

SQL> ALTER TABLE T3 ADD PRIMARY KEY (ID);

表已更改。

SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T1')

PL/SQL 过程已成功完成。

SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T2')

PL/SQL 过程已成功完成。

SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T3')

PL/SQL 过程已成功完成。

SQL> CONN YANGTK/YANGTK@YTK92已连接。

SQL> CREATE TABLE T AS SELECT ROWNUM ID, OBJECT_NAME, MOD(ROWNUM, 2) TYPE FROM DBA_OBJECTS A;

表已创建。


共3页: 1 [2] [3] 下一页
【内容导航】
关于 Oracle  操作  优化  SQL
专题
Sun以10亿美元并购开源数据库厂商MySQL
如何优化IT 控制能耗
甲骨文Oracle 11g正式发布
Oracle数据库开发之PL/SQL基础应用
Oracle较真SAP-商业管理软件之战一触即发
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·SQL Server入门到精通 (查看89028次)
·SQL Server 2008/2005全解 (查看72342次)
·Oracle数据库开发指南 (查看40393次)
·Oracle SQL 内置函数大全 (查看37374次)
·MySQL数据库备份 (查看34423次)
订阅技术快讯
电子杂志下载
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本