![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hello Experts, I'm using the following query to create a table,which has over 7 million records. I'm writing these query's on oracle 10g using Pl/sql developer IDE. It has been running over 12 hours and is still in execution. Can anyone suggest me some accelration techniques, as this query is fetching data over dblinks create table temp1 as ( select table_1.cust_id, table_1.invoice_amt, table_2.payment_date from table_1@dblink, table_2@dblink where table_1.cust_id = table_2.cust_id ) |
#3
| |||
| |||
|
|
IIRC, the optimizer has difficulties calculating potential index usage over DBLinks. Assuming that there are indexes on cust_id on both these tables, consider creating a view in the source database with the join on the tables there, and then select from that view over the DBLink. GM |
#4
| |||
| |||
|
|
Hello Geoff IIRC, the optimizer has difficulties calculating potential index usage over DBLinks. Assuming that there are indexes on cust_id on both these tables, consider creating a view in the source database with the join on the tables there, and then select from that view over the DBLink. I get an error saying " unable to extend temp segment by 61446 in tablespace. So working on the source db is not an option. Moreover, I have been instructed not to use that database for any testing purposes. any other ideas ? |
#5
| |||
| |||
|
|
In article <efbc7001-9985-454a-a32b-198ad70e67b0@ 2g2000prl.googlegroups.com>, novice82 says... Hello Geoff IIRC, the optimizer has difficulties calculating potential index usage over DBLinks. Assuming that there are indexes on cust_id on both these tables, consider creating a view in the source database with the join on the tables there, and then select from that view over the DBLink. I get an error saying " unable to extend temp segment by 61446 in tablespace. So working on the source db is not an option. Moreover, I have been instructed not to use that database for any testing purposes. any other ideas ? Rather than create one table based on a join over the DBLink, create TWO tables, each selecting from only one table over the link. Then index your columns and do the work (create table or just create view) locally. |
#6
| |||
| |||
|
|
Geoff Muldoon <geoff.muld... (AT) trap (DOT) gmail.com> writes: In article <efbc7001-9985-454a-a32b-198ad70e67b0@ 2g2000prl.googlegroups.com>, novice82 says... Hello Geoff IIRC, the optimizer has difficulties calculating potential index usage over DBLinks. Assuming that there are indexes on cust_id on both these tables, consider creating a view in the source database with the join on the tables there, and then select from that view over the DBLink. I get an error saying " unable to extend temp segment by 61446 in tablespace. So working on the source db is not an option. Moreover, I have been instructed not to use that database for any testing purposes. any other ideas ? Rather than create one table based on a join over the DBLink, create TWO tables, each selecting from only one table over the link. *Then indexyour columns and do the work (create table or just create view) locally. I can second this advice. I've done this in the past and it has greatly improved performance. In my case, I used temporary global tables as I knew I needed to join all the rows and full table scans were not an issue. the performance changed from being unusable to very acceptable. Tim -- tcross (at) rapttech dot com dot au |
![]() |
| Thread Tools | |
| Display Modes | |
| |