WEB开发网
开发学院数据库Oracle Oracle数据库异构数据联结详解 阅读

Oracle数据库异构数据联结详解

 2008-12-26 13:08:21 来源:WEB开发网   
核心提示: 现在,对于合并数据有一个可供选择的办法,Oracle数据库异构数据联结详解(3),那就是让我们使用一个真正的列替代虚拟数据列,一个自然的选择是创建(在某种意义上)基于序列替代关键字,最好在创建表的时候就创建,那么,这个办法是为每个表添加一个命名为SEQ的列,并且在基于序列号对他们进行更新

现在,对于合并数据有一个可供选择的办法。那就是让我们使用一个真正的列替代虚拟数据列,一个自然的选择是创建(在某种意义上)基于序列替代关键字。这个办法是为每个表添加一个命名为SEQ的列,并且在基于序列号对他们进行更新,并且保证每次更新使用相同的起点和相同的增量。对一个表更新操作如下所示。

SQL> create sequence tab_b;
Sequence created.
Elapsed: 00:00:00.05
SQL> update table_b set seq = tab_b.nextval;
1000000 rows updated.
Elapsed: 00:05:00.05

有一件事应该可以立即脱颖而出:创造一个合并关键字所花费的时间刚刚超过五分钟,或是ROWNUM采取的方法所花费时间的13倍,这只是对两个表中的一个表所进行操作所花费的时间(第一张表格花费五分钟进行更新) 。增加或创建一个合并关键字是必要的,如有可能,最好在创建表的时候就创建。那么,比通过ROWNUM做同样的事情所多花费的关键点是什么?

根据新的设置,如何进行合并? 

 CREATE TABLE TABLE_SEQ AS
SELECT * FROM
(SELECT ID, SEQ AS seq_a
FROM TABLE_A)
ALIAS_A,
(SELECT ID AS id_b, SEQ AS seq_b
FROM TABLE_B)
ALIAS_B
WHERE ALIAS_A.seq_a = ALIAS_B.seq_b
call count cpu elapsed disk query current rows
  ------- ------ -------- ---------- ---------- ----------
Parse 1 0.00 0.06 0 0 0 0
Execute 1 10.64 24.43 12186 12370 5677 1000000
Fetch 0 0.00 0.00 0 0 0 0
  ------- ------ -------- ---------- ---------- ----------
total 2 10.64 24.49 12186 12370 5677 1000000

上一页  1 2 3 4  下一页

Tags:Oracle 数据库 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接