I have a question about the probable performance of 2 different approaches
to a problem. Lacking an Oracle installation I cannot benchmark.

Installation: Oracle 8.1.7, DBD-Oracle 1.06, DBI 1.15

I have 2 different Oracle databases on 2 different machines, let's call it
oradb1 and oradb2. I have to compare the contents of a lot of tables in
these oradb1 and oradb2. Let's assume table1 is in oradb1 and table2 in
oradb2.

Approach A:

1.      connect to oradb1
2.      create database-link to oradb2
3.      issue select * from oradb1.table1 minus select * from oradb2.table2
4.      issue select * from oradb2.table2 minus select * from oradb1.table1

Approach B:

1.      connect to oradb1
2.      write result of "select * from oradb1.table1" to file fdb1
3.      sort fdb1 (UNIX command sort)
4.      connect to oradb2
5.      write result of "select * from oradb2.table2" to file fdb2
6.      sort fdb2 (UNIX command sort)
7.      diff fdb1 fdb2 (UNIX command diff)

Comment to Approach B: Steps (2,3), (5,6) and (7) are done by seperate child
process that run partially in parallel. 

Any hints (or better appoaches) are welcome. Should I use "order by" in the
select clause instead of "UNIX sort".

Thanks,
Peter

Reply via email to