SQL> ALTER TABLE T ADD PRIMARY KEY (ID);
表已更改。
SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T')
PL/SQL 过程已成功完成。
SQL> CREATE DATABASE LINK YTK102 CONNECT TO YANGTK IDENTIFIED BY YANGTK USING 'YTK102';
数据库链接已创建。
在这个例子中,需要更新YTK102数据库中T表的TYPE字段,如果T表中一条记录的ID可以在远端T1、T2、T3表的联合查询中查询到,则这条记录的TYPE应该更新为1,如果查询不到对应的记录,则需要更新TYPE的值为O,如果当前的TYPE的值已经满足要求,则不需要进行更新。
最简单的方法莫过于更新两次,每次只更新一部分数据:
PL/SQL 过程已成功完成。
已用时间: 00: 00: 44.28
SQL> ROLLBACK;
回退已完成。
已用时间: 00: 00: 01.10
当然,也可以通过一个UPDATE来实现更新,只不过逻辑略微复杂了一点:
|
SQL> ROLLBACK;
回退已完成。
已用时间: 00: 00: 00.15
有的时候,一个复杂的SQL并不比两个简单的SQL效率要高,上面就是一个例子。这里的主要原因是,无论是两次更新,还是一个UPDATE语句,对远端的两个表访问两次是无法避免的,而一个UPDATE的逻辑更加复杂,选择执行计划更加困难。
由于访问远端对象的代价是相对比较大的,下面通过PL/SQL的方式来避免对远端对象的多次访问:
|
| 共3页: 上一页 [1] 2 [3] 下一页 | ||
|
|
||||
| · ADSL应用面面俱到 · 龙芯要做中国的“奔腾” · 华为七千人主动辞职规.. · 华为路由器配置 · 华为员工自杀频频拷问.. · 贝恩资本携手华为22亿.. · 2007盘点专题:有多少.. · 双机热备技术 |
· 微软出价446亿美元收购.. · 国际文档格式标准开战 · 体验Visual Studio 200.. · 微软Forefront企业安全.. · Sun以10亿美元并购开源.. · 802.11n:下一代的无线.. · 甲骨文Oracle 11g正式.. · Windows Server 2008专.. |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2008/2005.. · 中间件应用技术专题 · 深入了解PGP加密技术 · MySQL数据库备份 |
· 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · 路由器设置与口令恢复 · Linux 集群技术专题 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · MySQL数据库备份 · 身份认证技术 |
· 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 路由器设置与口令恢复 · Linux 集群技术专题 · VPN技术 · Linux 基础 |
|||