Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: RE: URGENT : sql*loader performance problem on partionned table
Please post a subset of your batch script. Please format it so its readable. Ill look at it. Also please post how many rows are in each table.
Ill see if I can find anything. I think the two locks on the same object are locks on seperate partitions. Not sure.
>
> From: "NGUYEN Philippe (Cetelem)" <philippe.nguyen_at_cetelem.fr>
> Date: 2003/09/03 Wed AM 09:59:27 EDT
> To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com>
> Subject: RE: URGENT : sql*loader performance problem on partionned table
>
> thank U Dennis,
>
> I use local index,
> the script is still running (2hours now! instead of 10-20 min) and here is
> the statement in question (the script who used non-partionned table is
> already ended)
>
> SELECT NULL
> FROM hrel_fusion
> WHERE cod_rel = :b1
> AND dat_rel = :b2
> AND NOT EXISTS (SELECT NULL
> FROM primedi_enr2_temp_fusion
> WHERE primedi_enr2_temp_fusion.nodos_or =
> hrel_fusion.nodos_or
> AND primedi_enr2_temp_fusion.code_logis =
> hrel_fusion.cod_rel
> AND primedi_enr2_temp_fusion.date_logis =
> hrel_fusion.dat_rel)
> FOR UPDATE
>
>
> The explain plan show that hrel_fusion table is ACCESS BY LOCAL INDEX ROWID
> and primedi table used INDEX too.
> When I looking at lock tables it show me 2 session locked :
>
> SQL> select session_id, oracle_username, object_name
> 2 from v$locked_object lo, dba_objects o
> 3 where lo.object_id = o.object_id
> 4 ;
>
> SESSION_ID ORACLE_USERNAME OBJECT_NAME
> ---------- ------------------------------
> ----------------------------------------------------------------------------
> ----
> 7 FICOM HREL_FUSION
> 7 FICOM HREL_FUSION
>
> -Why are there 2 locks on this table even there only one session ?
> - Yesterday I did gather_statitic on this table and it worked fine (12 min),
> should I do this each day ?
> TIA
> Philippe
>
>
>
> -----Message d'origine-----
> De : DENNIS WILLIAMS [mailto:DWILLIAMS_at_lifetouch.com]
> Envoyé : 02 September 2003 19:45
> À : Multiple recipients of list ORACLE-L
> Objet : RE: URGENT : sql*loader performance problem on partionned table
>
>
> Philippe
> You aren't providing many details on which to base some guesses.
> However, your statement "brand new disks" implies that you are adding
> additional partitions to an existing table. Then, your statement "should I
> drop indexes" implies that you have indexes on the partitioned table,
> possibly global indexes. If you are continuing to grow a partitioned (or
> non-partitioned) table than has indexes, then the load time will increase
> because Oracle must integrate each new entry into the index, which will take
> more time as the index grows. Take a look at local indexes. If I not
> understood your situation correctly, please clarify your situation further.
>
>
>
> Dennis Williams
> DBA, 80%OCP, 100% DBA
> Lifetouch, Inc.
> dwilliams_at_lifetouch.com
>
> -----Original Message-----
> Sent: Tuesday, September 02, 2003 12:14 PM
> To: Multiple recipients of list ORACLE-L
>
>
>
> Hi gurus,
> we have two daily loads that one after the other.
> The first fill up a non partitionned table and the second do the same into a
> partitionned table.
> First times the second load ran very quickly : 1 min instead of 5 min (non
> partitionnned table).
> But now since few days, the partitionned table filling take more than 1-2
> hours ! yesterday it took 14 hours !!!!
> Any one has any clue ?
> - Tablespaces for partitionned table used brand new separate disks
> - Does it come from indexes ? should I drop them first ?
>
> Thankx in advance!
>
>
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.net
> --
> Author: DENNIS WILLIAMS
> INET: DWILLIAMS_at_LIFETOUCH.COM
>
>
>
thank U Dennis,
I use local index,
the script is still running (2hours now! instead of 10-20 min) and here is the statement in question (the script who used non-partionned table is already ended)
SELECT NULL
FROM hrel_fusion
WHERE cod_rel = :b1
AND dat_rel = :b2
AND NOT EXISTS (SELECT NULL
FROM primedi_enr2_temp_fusion
WHERE primedi_enr2_temp_fusion.nodos_or =
hrel_fusion.nodos_or
AND primedi_enr2_temp_fusion.code_logis =
hrel_fusion.cod_rel
AND primedi_enr2_temp_fusion.date_logis =
hrel_fusion.dat_rel)
FOR UPDATE
The explain plan show that hrel_fusion table is ACCESS BY LOCAL INDEX ROWID and primedi table used INDEX too.
When I looking at lock tables it show me 2 session locked :
SQL> select session_id, oracle_username, object_name
2 from v$locked_object lo, dba_objects o
3 where lo.object_id = o.object_id
4 ;
SESSION_ID ORACLE_USERNAME OBJECT_NAME
---------- ------------------------------ --------------------------------------------------------------------------------
7 FICOM HREL_FUSION
7 FICOM HREL_FUSION
-Why are there 2 locks on this table even there only one session ?
- Yesterday I did gather_statitic on this table and it worked fine (12 min), should I do this each day ?
TIA
Philippe
-----Message d'origine-----
De : DENNIS WILLIAMS [mailto:DWILLIAMS@lifetouch.com]
Envoyé : 02 September 2003 19:45
À : Multiple recipients of list ORACLE-L
Objet : RE: URGENT : sql*loader performance problem on partionned table
Philippe
You aren't providing many details on which to base some guesses.
However, your statement "brand new disks" implies that you are adding
additional partitions to an existing table. Then, your statement "should I
drop indexes" implies that you have indexes on the partitioned table,
possibly global indexes. If you are continuing to grow a partitioned (or
non-partitioned) table than has indexes, then the load time will increase
because Oracle must integrate each new entry into the index, which will take
more time as the index grows. Take a look at local indexes. If I not
understood your situation correctly, please clarify your situation further.
Dennis Williams
DBA, 80%OCP, 100% DBA
Lifetouch, Inc.
dwilliams@lifetouch.com
-----Original Message-----
Sent: Tuesday, September 02, 2003 12:14 PM
To: Multiple recipients of list ORACLE-L
Hi gurus,
we have two daily loads that one after the other.
The first fill up a non partitionned table and the second do the same into a
partitionned table.
First times the second load ran very quickly : 1 min instead of 5 min (non
partitionnned table).
But now since few days, the partitionned table filling take more than 1-2
hours ! yesterday it took 14 hours !!!!
Any one has any clue ?
- Tablespaces for partitionned table used brand new separate disks
- Does it come from indexes ? should I drop them first ?
Thankx in advance!
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: DENNIS WILLIAMS
INET: DWILLIAMS@LIFETOUCH.COM
-- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: <rgaffuri_at_cox.net INET: rgaffuri_at_cox.net Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Wed Sep 03 2003 - 09:14:26 CDT