Using temporary tablespaces to improve sort

I have to do a select like "SELECT X FROM ABC ORDER BY X", where X is the primary key, thus, is indexed.
There is more than 80000 records, and its taking more than 10 seconds to get the response....
After creating a temporary tablespace, how do I do a Select using this tablespace?
null

Hi everybody
Executing the script utlxplan.sql, and after the script explain.sql, I got the "route" done by the query I need.
The table's name is CADIT. Primary Key cod_cp. The column used for the where clause is familia,indexed with the index IT1.
In the first case, the query was
SELECT COD_CP FROM CADIT
WHERE FAMILIA='600' ORDER BY COD_CP
The plan is this:
OPERATION OPTIONS OBJECT_NAME
SELECT STATEMENT
SORT ORDER BY
TABLE ACCESS BY INDEX ROWID CADIT
INDEX RANGE SCAN IT1
In the second case, the query was SELECT COD_CP FROM CADIT WHERE FAMILIA='600'
The plan is this:
OPERATION OPTIONS OBJECT_NAME
SELECT STATEMENT
TABLE ACCESS BY INDEX ROWID CADIT
INDEX RANGE SCAN IT1
In the third case, the query was SELECT COD_CP FROM CADIT ORDER BY COD_CP
The plan is this:
OPERATION OPTIONS OBJECT_NAME
SELECT STATEMENT
SORT ORDER BY
TABLE ACCESS FULL CADIT
Thus, looking at it, I concluded that no index is used for the SORT operation. Is that correct?
I created another table, named cadit2, with the parameter ORGANIZATION INDEX at the end of the CREATE TABLE command. For that new table, the same query as the first one was much faster. Why?
Thanks
Guillermo Nudelman Hess

Similar Messages

  • Using temporary tablespace for sort in select statement without spacifying

    how can i use some particular temporary tablespace in select statement for sording without allocating any temporary tablespace to that user

    Try to set for the current session the in memory sorting space to 0 before running your query:
    SQL> alter session set sort_area_size = 0;The query should use the temporary tablespace.
    Message was edited by:
    Pierre Forstmann

  • Temporary tablespace is not being used

    hello all,
    we have oracle 10g 10.2.1.0 on windows server 2003 platform (32-bit). we have 24*7 database. we have OLTP with heavy transactions. last night we ran a report which is supposed to fetch more than 2500 rows and query include group by and order by clause.
    i have rebuild all indexes on index tablespace, which were previously on users tablespace where my all data resides.
    but it is taking too much long to generate report more that 40 minutes (expected 5 minutes) my SGA is set to 1.2 GB shared pool sixe is 500M and db_cache_size=400M. and when i check tablespace status from enterprise manager everytime , i see that temporary tablespace is never being used..it always shows that temporary tablespace usages 0.0 and i allocated 4 GB to temp tablespace and it is also default temporary tablespace.
    what else i can do to force oracle to use temporary tablespaces??? it is not using for sorting also...thats why it is taking so long to generating report..
    any suggestion would be appreciable..
    thanks and regards
    VD

    vikrant dixit wrote:
    we have oracle 10g 10.2.1.0 on windows server 2003 platform (32-bit). we have 24*7 database. we have OLTP with heavy transactions. last night we ran a report which is supposed to fetch more than 2500 rows and query include group by and order by clause.
    i have rebuild all indexes on index tablespace, which were previously on users tablespace where my all data resides.
    but it is taking too much long to generate report more that 40 minutes (expected 5 minutes) Are you saying that you tried rebuilding all your indexes because the report started to run slowly, or conversely that you rebuilt all the indexes and then the report ran slowly ?
    If it's just a report that you could simply re-run, then all you have to do is re-run it and watch exactly where the time goes (you've been told about the 10046 trace already).
    If it's a report that ran, and was tuned, regularly in the past then you presumably have the execution plan stored somewhere so you could even check the current execution plan compared to the old one to see if it has changed.
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    To post code, statspack/AWR report, execution plans or trace files, start and end the section with the tag {noformat}{noformat} (lowercase, curly brackets, no spaces) so that the text appears in fixed format.
    "There's no sense in being precise when you don't even know what you're talking about"
    John von Neumann                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Swap, temporary tablespace and sort operations

    Hello.
    I have an Oracle 8.1.7 on Linux RH7.1. I see a very interesting situation: when users begin to execute large selects with many sorts operation swapping grows, but temporary tablespace does'nt grow. As I know, when Oracle has no memory to use as "sort_area_size" it uses temporary tablespace. But looks like that when Oracle ask for memory Linux begin to swap (in order to give memory for Oracle). I mean that Oracle don't use temporary tablespace but use swap instead of it. Is it true? Is it problem? Is it Oracle, Linux or my own configuration bug? Is it better to use swap or to use temporary tablespace? What is faster?
    Thanx for all advises and ideas. ANd sorry for pure English

    login to your database as DBA (SYS AS SYSDBA) and issue the following query:
    SQL> select name, value from v$parameter where name = 'sga_max_size' ;
    see the value defined for this parameter. If this is larger than what you have configured as your SGA size,
    Oracle will assume that it can expand the SGA to "sga_max_size" value, and will try to expand the SGA when
    required. This will result in Oracle asking more memory from the linux kernel and then linux starts to use
    the swap space.
    Try changing the value of this parameter and see if it helps.

  • When to use PGA_AGGREGATE_TARGET and when to use temporary table space?

    Hi, all.
    I am a little confused with regard to when to use pga work area, and
    when to use temporary tablespace?
    Is there any one who could give me an advice or a document?
    Thanks in advance.
    Best Regards.
    Message was edited by:
    user507290

    You are more than a little confused... What has one to do with the other, do you think?
    All Oracle documentation is at http://tahiti.oracle.com - I suggest you start with the Concepts manual of your version

  • 10G: TEMPORARY TABLESPACES GROUP

    제품 : ORACLE SERVER
    작성날짜 : 2004-05-25
    10G: TEMPORARY TABLESPACES GROUP
    ==================================
    PURPOSE
    이 문서에서는 10g New Feature 인 Temporary tablespace 의 group 에 대해 알아 보도록 한다.
    Explanation
    10g 에서는 temporary tablespaces 에 대해 group 을 지정하여 생성할 수 있고
    consumer group 을 지정하여 resource manager 와 함께 적용하여 사용이 가능하다.
    다음은 Temporary tablespace group 지정을 위한 기본적이 사항이다.
    1. 하나의 temporary tablespace group 은 적어도 하나의 tablespace 가 존재해야 하고
    maximum number tablespace 에 대한 limit 은 정해져 있지 않다.
    2. Ttemporary tablespace 와 group name 을 동일하게 지정할 수 없다.
    3. Temporary tablespace group 은
         1) 한 group 에서 다른 group 으로 move 가 가능하고
         2) Group 내에서 삭제 될 수 있으며
         3) 추가적으로 add 가 가능하다.
    4. Temporary tablespace group 사용으로 인해
         1) Sort 결과를 유지하여 space 낭비를 막을 수 있고
         2) 동시에 여러개의 session connect 시에도 서로 다른 temporary tablespaces 를 사용함으로써
         temporary tablespaces 의 사용을 분산 시킬 수 있다.
         3) Parallel operation 시에도 multiple temporary tablespaces 사용이 가능하다.
    Example
    1. GROUP1 을 지정하고 GROUP1 에 속하는 temporary tablespace LMTEMP 1 를 생성한다.
    이 때 GROUP 1 을 따로 생성할 필요 없고 temporary tablespace 생성시에 지정하도록 한다.
    SQL> create temporary tablespace LMTEMP 1
    tempfile 'D:\ORACLE10\ORCL\temp1_01.dbf' size 50M
    tablespace group GROUP1;
    SQL> select * from dba_tablespace_groups;
    GROUP_NAME TABLESPACE_NAME
    GROUP1 LMTEMP1
    2. LMTEMP2 를 GROUP1 에 새로 추가한다.
    SQL> create temporary tablespace lmtemp2
    tempfile 'D:\ORACLE10\ORCL\temp1_02.dbf' size 2M
    tablespace group group1;
    Tablespace created.
    SQL> select * from dba_tablespace_groups;
    GROUP_NAME TABLESPACE_NAME
    GROUP1 LMTEMP1
    GROUP1 LMTEMP2
    3. 기존에 존재하는 LMTEMP1 를 GROUP2 로 move 한다.
    SQL> alter tablespace LMTEMP1 tablespace group GROUP2 ;
    Tablespace altered.
    SQL> select * from dba_tablespace_groups;
    GROUP_NAME TABLESPACE_NAME
    GROUP2 LMTEMP1
    GROUP1 LMTEMP2
    4. LMTEMP1 이 속해 있던 GROUP2 에서 LMTEMP1 를 제외 시키고 다시 포함시킬 수 있다.
    SQL> alter tablespace LMTEMP1 tablespace group '';
    Tablespace altered.
    SQL> select * from dba_tablespace_groups;
    GROUP_NAME TABLESPACE_NAME
    GROUP1 LMTEMP2
    SQL> select tablespace_name from dba_tablespaces where contents='TEMPORARY';
    TABLESPACE_NAME
    TEMP
    LMTEMP1
    LMTEMP2
    SQL> alter tablespace LMTEMP1 tablespace group GROUP1;
    Tablespace altered.
    5. Temporary tablespace 와 group name 을 동일하게 지정할 경우 ORA-10918 에러가 발생한다.
    즉, temporary tablespace 와 group name 을 동일하게 지정이 불가능하다.
    SQL> create temporary tablespace lmtemp5
    tempfile 'D:\ORACLE10\ORCL\temp1_05.dbf' size 50M
    tablespace group lmtemp5;
    create temporary tablespace lmtemp5
    ERROR at line 1:
    ORA-10918: TABLESPACE GROUP name cannot be the same as tablespace name
    6. 존재하던 모든 temporary tablespaces 를 drop 하게 되면 group 은 자동으로 remove 된다.
    SQL> create temporary tablespace LMTEMP3
    tempfile 'D:\ORACLE10\ORCL\temp1_03.dbf' size 2M
    tablespace group GROUP2;
    Tablespace created.
    SQL> create temporary tablespace LMTEMP4
    tempfile 'D:\ORACLE10\ORCL\temp1_04.dbf' size 2M
    tablespace group GROUP2;
    Tablespace created.
    SQL> select * from dba_tablespace_groups;
    GROUP_NAME TABLESPACE_NAME
    GROUP1 LMTEMP1
    GROUP1 LMTEMP2
    GROUP2 LMTEMP3
    GROUP2 LMTEMP4
    SQL> drop tablespace lmtemp3 including contents and datafiles;
    Tablespace dropped.
    SQL> drop tablespace lmtemp4 including contents and datafiles;
    Tablespace dropped.
    SQL> select * from dba_tablespace_groups;
    GROUP_NAME TABLESPACE_NAME
    GROUP1 LMTEMP1
    GROUP1 LMTEMP2
    7. Group 에 user 사용이 가능하도록 지정할 수 있다.
    SQL> alter user scott temporary tablespace GROUP1;
    User altered.
    8. Temporary tablespace group 을 database level 의 default temporary tablespace 로도 지정할 수 있다.
    SQL> alter database <db_name> default temporary tablespace GROUP1;
    Database altered.
    만약, temporary tablespaces 가 default database temporary tablespace group 에 속해 있는경우
    drop 시 ORA-10921 에러가 발생하게 된다. 즉, default temporary tablespace group 에 속해 있는 경우
    drop 할 수 없다.
    SQL> drop tablespace LMTEMP2 including contents and datafiles;
    drop tablespace lmtemp2 including contents and datafiles
    ERROR at line 1:
    ORA-10921: Cannot drop tablespace belonging to default temporary tablespace
    group
    Reference Documents
    <NOTE. 245645.1>

    Hi,
    Take a look in
    1 - DBA_TEMP_FILES :http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2398.htm
    2 - V$TEMPFILE: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch3225.htm
    Cheers,
    Marcello M.

  • Temporary tablespace-Problem

    Hi,
    How to view the temporary tablespace usage?
    How to deallocate the used temporary tablespace segments/ resize temporary tablespace?
    I am running a query which is consuming 4GB temporary tablespace and failing.
    pga_aggregate_traget=500m;
    oracle -9.2.0.1.0
    OS:Windows 2003
    How to solve this?
    regards
    Mathew

    Hi,
    We are using the following View and it is fetchhing 46,56,00,000 rows.
    PGA=500m
    While running the query temporary tablespace is growing upto 4GB and query is failling.
    CREATE OR REPLACE FORCE VIEW MHUBADMIN.LOAN_PIPELINE_VIEW
    (LOAN_ID, USER_ID, FIRST_NAME, LAST_NAME, BORROWER_NAME,
    SSN, USERNAME, SELLERLOANNUMBER, LOANNUMBER, LOANAMOUNT,
    STATUS_DESC, LOAN_TYPE, LOCK_EXPIRE_DATE, ORG_NAME, ORG_PARENT_ID,
    ORG_CHILD_ID, NO_CASCADE_FLAG, PRODUCT_NAME, INT_RATE, UPDATE_DATE,
    UPDATE_DATE_STR, CURRENT_DATE, LOWER_FIRST_NAME, LOWER_LAST_NAME, LOWER_SSN,
    LOWER_STATUS_DESC, STATUS_ID, AMORTIZATION_TYPE, STREET1, LOCK_EXTEN_EXPIR_DATE,
    RELOCK_EXPIR_DATE, LOCK_RELOCK_COUNT, UNDERWRITE_FLAG, RECENT_EXPIR_DATE, STATUS_DATE)
    AS
    SELECT
    LOAN.loan_id,
    LOAN.user_id,
    PERSON.first_name,
    PERSON.last_name,
    PERSON.last_name||', '||PERSON.first_name AS Borrower_Name,
    PERSON.ssn,
    HUBUSER.username,
    LOAN.sellerloannumber,
    LOAN.loannumber,
    LOAN.loanamount,
    STATUS.status_desc,
    LOAN.loan_type,
    PRICE.lock_expire_date,
    ORGANIZATION.org_name,
    BUSINESS_RELATIONSHIP.org_parent_id,
    BUSINESS_RELATIONSHIP.org_child_id,
    BUSINESS_RELATIONSHIP.no_cascade_flag,
    product_name,
    PRICE.final_rate,
    LOAN.update_date,
    TO_CHAR (LOAN.update_date,
    'MM/DD/YYYY HH:MI:SS AM') update_date_str,
    sysdate,
    LOWER (PERSON.first_name),
    LOWER (PERSON.last_name),
    LOWER (PERSON.ssn),
    LOWER (STATUS.status_desc),
    STATUS.status_id,
    LOAN.amortization_type,
    ADDRESS.STREET1,
    PRICE.LOCK_EXTEN_EXPIR_DATE,
    PRICE.RELOCK_EXPIR_DATE,
    LOAN.LOCK_RELOCK_COUNT,
    LOAN.UNDERWRITE_FLAG,
    decode (status.STATUS_ID,
    22, PRICE.LOCK_EXTEN_EXPIR_DATE,
              23, PRICE.lock_expire_date,
              13, PRICE.lock_expire_date,
              24, PRICE.RELOCK_EXPIR_DATE,
              PRICE.lock_expire_date) RECENT_EXPIR_DATE,
              LOAN_STATUS_HISTORY.STATUS_DATE
    FROM
    LOAN,
    HUBUSER,
    ORGANIZATION,
    BUSINESS_RELATIONSHIP,
    BORROWER,
    PERSON,
    STATUS,
    PRICE,
    product,
    PROPERTY,
    ADDRESS,
    LOAN_STATUS_HISTORY
    WHERE
    ORGANIZATION.org_id = BUSINESS_RELATIONSHIP.org_child_id AND
    LOAN.org_id = BUSINESS_RELATIONSHIP.org_child_id AND
    LOAN.loan_id = BORROWER.loan_id AND
    LOAN.registration_loan_status_id = STATUS.status_id AND
    LOAN.price_id = PRICE.price_id AND
    BORROWER.primaryborrower = 'T' AND
    PERSON.person_id = BORROWER.person_id AND
    LOAN.product_id = product.product_id AND
    LOAN.PROPERTY_ID = PROPERTY.PROPERTY_ID AND
    PROPERTY.ADDRESS_ID = ADDRESS.ADDRESS_ID AND
    LOAN.user_id = HUBUSER.user_id (+);
    Any one know how to tune this query?
    regards
    Mathew

  • Temporary tablespace segments ?

    HI,
    How to find the current users who are using temporary tablespace segments ?
    Thnaks in Advance

    using the following query will point out which program/user/sessions etc are currently using your temp space.
    SELECT   b.TABLESPACE
           , b.segfile#
           , b.segblk#
           , ROUND (  (  ( b.blocks * p.VALUE ) / 1024 / 1024 ), 2 ) size_mb
           , a.SID
           , a.serial#
           , a.username
           , a.osuser
           , a.program
           , a.status
        FROM v$session a
           , v$sort_usage b
           , v$process c
           , v$parameter p
       WHERE p.NAME = 'db_block_size'
         AND a.saddr = b.session_addr
         AND a.paddr = c.addr
    ORDER BY b.TABLESPACE
           , b.segfile#
           , b.segblk#
           , b.blocks;hope this helps you.

  • How do i know if my query using  SORT_AREA_SIZE   or temporary tablespace ?

    Good Morning  Everyone !
    My DB version is 10.2.0.1
    I have large table  exactly 3 million records.
    SQL> select count(*) from tab1;
    COUNT(*)
       300000
    SQL> select * from tab1 order by no DESC;
    sorting  ... in process
    300000 rows selected.
    in Terminal 2 : I tried to find  sorting details -   ( No rows  selected - why ? )
    SQL> select USERNAME , USER , TABLESPACE , SQL_ID from v$tempseg_usage  ;
    no rows selected
    SQL> /
    no rows selected
    When i google i have seen this ;
    If  Oracle cannot do the sort in memory  (SORT_AREA_SIZE initialisation parameter), space will be allocated in a temporary tablespace for doing the sort operation.
    REF_LINK : TEMPORARY Tablespaces and TEMPFILES | Oracle FAQ
    MY DOUBT QUESTION :   How do i know if my query using  SORT_AREA_SIZE   or temporary tablespace ?
    Thanks in advance.

    @ JohnWatson
    I have seen some articles from ORA - FAQ. Good.
    SQL> select USERNAME , USER , TABLESPACE , SQL_ID from v$tempseg_usage;
    USERNAME                       USER   TABLESPACE                      SQL_ID
       SCOTT                               SYS          TEMP                            fh9vqgyd6m0d1
    PGA management means that sorting only 300000 rows  may well occur in memory
                Is this (3 million rows) -  standard  value for 10g version ?
    Thanks JohnWatson

  • Temporary tablespace groups - all available temp files not used

    We have a temporary tablespace group TEMP_GROUP made of the following pre-existing temp files. I have placed the size in MB in brackets. Names have been changed to protect our privacy. NLS is spanish
    SQL> select * from dba_tablespace_groups;
    TEMP_GROUP TEMP1 --(1024)     
    TEMP_GROUP TEMP2 --(2000)
    TEMP_GROUP TEMP3 --(8048)
    This tablespace group is the default temp tablespace of this database, and is the default temp tablespace of sys in the example that follows
    connect sys/password
    alter INDEX schema1.idx1 rebuild
    ERROR en línea 1:
    ORA-01652: no se ha podido ampliar el segmento temporal con 128 en el tablespace TEMP1
    -- this coinicdes with the TEMP1 showing 100% used
    NOTE that the message refers to the tempfile TEMP1 and not the TEMP_GROUP, which has 11GB of space available
    The size of the index is small enough to be handled by this TEMP_GROUP, although quite large to be handled by TEMP1 on its own.
    SQL> SELECT sum(bytes)/1048576 Megs, segment_name
    2 FROM dba_extents
    3 WHERE segment_name = 'IDX1'
    4 GROUP BY segment_name
    5 /
    MEGS SEGMENT_NAME
    840 IDX1
    What appears to be happening is that when the rebuild index has used all the space available in TEMP1 tempfile, it does not go on to use the space available in the other two tempfiles that make up the TEMP_GROUP. This seems to be contrary to the very idea of having set up a TEMP_GROUP.
    This suposition is born out by the repitition of the operation using the owner of the index, whose default temp file is not TEMP_GROUP as a whole, but the component tempfile TEMP_3 which has 8048MB available
    connect schema1/password
    SQL> alter INDEX schema1.idx1 rebuild
    Índice modificado.
    -- This time the index does get rebuilt, pesumably because there is space available in TEMP_3 to carry out the rebuild.
    My questions are
    1. ¿Why does the original operation fail out when it has reached the limit of tempfile TEMP1 instead of using the further space availbel within TEMP_GROUP? ¿Isn´t the point of temporary tablespace groups the explicit avoidance of this type of issue?
    2. Depending on the answer to #1, and asuming that the behaviour is normal (ie, that a rebuild index should not be expected to take place using more than one temp file), does anyone have any idea ¿what dicatates the order of usage of the component temp files in a group?. ¿Is it alphabetical order of tempfile name?, ¿file create time? or ¿something else?
    3. As I mentioned the group was created out of existing tempfiles, rather than creating some temp file specifically to form the group. ¿Could this fact explain the inability of the operation to move onto the next temp file, once the first is exhausted. There is nothing in the documentation to suggest that there should be any difference in behaviour between a temp group created with new temp files, or the inclusion of existing temp files when creating a temp group.
    As you can see, we have worked round this problem, but it is an issue of importance given that it may affect other operations that leverage this temp file group. Any information or pointers to documented instances of similar occurances would be greatly appreciated. Thank you.
    Edited by: user602617 on 06-may-2009 0:57

    Half solved. This thread seems to suggest that there should be n expectation that a sort operation will begin to use the n+1 member of a temp tablespace group once it has exhausted member n.
    TEMP Tablespace Groups
    But this does not answer my secondary question as to how to determine which temp tablespace member is used first. I guess the solution would be to drop the the group and recreate it with three adequatly sized temp tablespaces.

  • Amount of temporary tablespace size used for index rebuild

    Hi All,
    I want to know approximate amount of temporary tablespace size used for index rebuild. I need this information to avoid the insufficient temporary tablespace error during the huge index rebuild.
    Is there a query or procedure to find it out.
    Thank you.

    Hi,
    While creating the index, the temporary segment is created in the permanent tablespace. So permanent tablespace must have sufficient space.
    http://www.oracle-base.com/articles/10g/SpaceObjectTransactionManagement10g.php
    http://aprakash.wordpress.com/2010/01/05/numeric-segment-name/
    Anand

  • Rapid and Huge growth of of used space of temporary tablespace

    Hi,
    Have a query (select) that run quick (no more than 10 seconds).
    As soon I insert the data into a temporary table or even on physical table, the temporary table used space starts to growth very fast. The used space is totally used and the query crash since e reach the limit (65GB), or even more if I add more table files to temporary tablespace!
    The problem also happen only if the period (dates) is one year (2013). If the period is the first trimestre of 2013 (same amount of data), the problem does not happen!!
    I also confirm that on another instance ( a test one), even with less resources this ORACLE behavior do not happen. I confirm differente execution plan queries, between the two instances .
    What I really do not understant is the behavior of the ORACLE with the huge and rapid growth!!!
    Any one experiment such a similiar situation?
    Thanks in advance,Rui
    Plan
    INSERT STATEMENT ALL_ROWSCost: 15.776 Bytes: 269 Cardinality: 1
    28 LOAD TABLE CONVENTIONAL MIDIALOG_OLAP.MED_INVCOMP_FACTTMP_BEFGROUPBY
    27 FILTER
    26 NESTED LOOPS
    24 NESTED LOOPS Cost: 15.776 Bytes: 269 Cardinality: 1
    22 NESTED LOOPS Cost: 15.775 Bytes: 255 Cardinality: 1
    19 NESTED LOOPS Cost: 15.774 Bytes: 205 Cardinality: 1
    17 NESTED LOOPS Cost: 15.773 Bytes: 197 Cardinality: 1
    14 NESTED LOOPS Cost: 15.770 Bytes: 180 Cardinality: 1
    11 NESTED LOOPS Cost: 15.767 Bytes: 108 Cardinality: 1
    9 HASH JOIN Cost: 15.757 Bytes: 8.346.500 Cardinality: 83.465
    7 HASH JOIN Cost: 13.407 Bytes: 6.345.012 Cardinality: 83.487
    5 HASH JOIN Cost: 11.163 Bytes: 5.010.550 Cardinality: 100.211
    3 HASH JOIN Cost: 5.642 Bytes: 801.288 Cardinality: 22.258
    1 INDEX RANGE SCAN INDEX MIDIALOG.IX_INSCOMP_DTCEIDICIDLCPECIDOP Cost: 120 Bytes: 489.676 Cardinality: 22.258
    2 INDEX FAST FULL SCAN INDEX (UNIQUE) MIDIALOG.IX_LINHACOMPRADA_IDLCIDOPSEQ Cost: 5.463 Bytes: 123.975.530 Cardinality: 8.855.395
    4 INDEX FAST FULL SCAN INDEX (UNIQUE) MIDIALOG.IX_LINHACOMPRADA_IDLCIDOPSEQ Cost: 5.463 Bytes: 123.975.530 Cardinality: 8.855.395
    6 TABLE ACCESS FULL TABLE MIDIALOG.ITEM_AV Cost: 1.569 Bytes: 6.963.736 Cardinality: 267.836
    8 TABLE ACCESS FULL TABLE MIDIALOG.ITEM_AV Cost: 1.572 Bytes: 7.713.672 Cardinality: 321.403
    10 INDEX UNIQUE SCAN INDEX (UNIQUE) MIDIALOG.IX_BOFINALBO_IDBOIDFINALBO Cost: 0 Bytes: 8 Cardinality: 1
    13 TABLE ACCESS BY INDEX ROWID TABLE MIDIALOG.INSERCAO_COMPRADA Cost: 3 Bytes: 72 Cardinality: 1
    12 INDEX RANGE SCAN INDEX (UNIQUE) MIDIALOG.IX_INSCOMPRADA_IDLCDATAPECAINS Cost: 2 Cardinality: 1
    16 TABLE ACCESS BY INDEX ROWID TABLE MIDIALOG.INSERCAO_ITEMFACTURA Cost: 3 Bytes: 17 Cardinality: 1
    15 INDEX RANGE SCAN INDEX MIDIALOG.IX_INSITFACT_INSCOMPRADA Cost: 2 Cardinality: 1
    18 INDEX RANGE SCAN INDEX (UNIQUE) MIDIALOG.UQ_ITEMFACTURA_IDITF_IDFACT Cost: 1 Bytes: 8 Cardinality: 1
    21 TABLE ACCESS BY INDEX ROWID TABLE MIDIALOG.FATURA Cost: 1 Bytes: 50 Cardinality: 1
    20 INDEX UNIQUE SCAN INDEX (UNIQUE) MIDIALOG.PK_FATURA Cost: 0 Cardinality: 1
    23 INDEX UNIQUE SCAN INDEX (UNIQUE) MIDIALOG.PK_TIPO_ESTADO Cost: 0 Cardinality: 1
    25 TABLE ACCESS BY INDEX ROWID TABLE MIDIALOG.TIPO_ESTADO Cost: 1 Bytes: 14 Cardinality: 1
    Edited by: rr**** on 19/Fev/2013 15:25

    I run the select with sucess, no more that 1 minute from on year of data. Few temporary used space used.
    As soon I plug the insert (global temporary table, also experiment with physical table) the used space of temporary table space start to grow crazy!!
    insert into midialog_olap.med_invcomp_facttmp_befgroupby
    select fac.numefatura,
    fac.codpessoa,
    fac.dtemiss,
    tef.nome as estado_factura,
    opsorig.demid,
    opsorig.anoplano,
    opsorig.numplano,
    opsorig.numplanilha,
    ops.nome as ordem_publicidade,
    ops.external_number as numero_externo,
    ops.estado,
    lic.seq,
    inc.data,
    inc.peca,
    fac.id_versao_plano,
    fac.ano_proforma || '.' || fac.numrf as num_proforma,
    iif.tipo_facturacao,
    opsorig.codveiculo as id_veiculo,
    opsorig.codfm as id_fornecedor_media,
    icorig.chkestado as id_estado_checking,
    0 as percentagem_comissao_agencia,
    0 as valor_pbv,
    0 as valor_stxtv,
    0 as valor_ptv,
    0 as valor_odbv,
    0 as valor_pbbv,
    0 as valor_dnv,
    0 as valor_pbnv,
    0 as valor_stxv,
    0 as valor_pbtv,
    0 as valor_dav,
    0 as valor_plv,
    0 as valor_odlv,
    0 as valor_pllv,
    0 as valor_ca,
    0 as valor_trv,
    0 as valor_txv,
    0 as valor_base_facturacao,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pb_compra * fac.percentagem_facturada / 100))
    as valor_pbc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_stxt_compra * fac.percentagem_facturada / 100))
    as valor_stxtc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pt_compra * fac.percentagem_facturada / 100))
    as valor_ptc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_odb_compra * fac.percentagem_facturada / 100))
    as valor_odbc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pbb_compra * fac.percentagem_facturada / 100))
    as valor_pbbc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_dn_compra * fac.percentagem_facturada / 100))
    as valor_dnc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pbn_compra * fac.percentagem_facturada / 100))
    as valor_pbnc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_stx_compra * fac.percentagem_facturada / 100))
    as valor_stxc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pbt_compra * fac.percentagem_facturada / 100))
    as valor_pbtc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_da_compra * fac.percentagem_facturada / 100))
    as valor_dac,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pl_compra * fac.percentagem_facturada / 100))
    as valor_plc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_odl_compra * fac.percentagem_facturada / 100))
    as valor_odlc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_pll_compra * fac.percentagem_facturada / 100))
    as valor_pllc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_transcricoes * fac.percentagem_facturada / 100))
    as valor_trc,
    decode(ops.estado, :WKFOPR_BOOKINGORDER_CANCELED, 0,
    decode(iif.tipo_facturacao, :BILLING_TYPE_ONLYCOMISSION, 0,
    inc.total_tx_compra * fac.percentagem_facturada / 100))
    as valor_txc,
    --nvl((select cfm.total_comprado
    -- from fin_custos_facturados_media cfm
    -- where cfm.id_factura = fac.id_factura and
    - -- cfm.id_op = ops.id_op
    -- ), 0) / opsorig.number_of_bought_insertions as custos_associados,
    0 as custos_associados,
    fac.iss as percentagem_iva,
    fac.percentagem_facturada,
    fac.currency_exchange as taxa_cambio,
    iif.associated_code as insertions_associated_code
    from fatura fac, item_fatura itf, insercao_itemfactura iif,
    insercao_comprada icorig, linha_comprada lcorig, item_av opsorig,
    med_bookingorder_finalbo opfin,
    insercao_comprada inc,
    linha_comprada lic, item_av ops,
    --veiculo vei,
    tipo_estado tef
    where fac.id_factura = itf.id_factura and
    itf.id_itemfactura = iif.id_itemfactura and
    iif.id_ic = icorig.id_ic and
    icorig.id_lc = lcorig.id_lc and
    lcorig.id_op = opsorig.id_op and
    opsorig.id_op = opfin.id_booking_order and
    opsorig.number_of_bought_insertions > 0 and
    opfin.id_final_booking_order = ops.id_op and
    -- ops.id_op = (
    -- select max(ops.id_op)
    -- from item_av ops
    -- start with ops.id_op = opsorig.id_op
    -- connect by prior ops.id_opsubstituicao = ops.id_op) and
    ops.id_op = lic.id_op and
    lic.seq = lcorig.seq and
    lic.id_op = inc.id_op and
    lic.id_lc = inc.id_lc and
    inc.data = icorig.data and
    inc.peca = icorig.peca and
    --opsorig.codveiculo = vei.codveiculo and
    fac.estado = tef.estado and
    fac.estado != 305 and
    ops.estado != 223 and
    iif.tipo_facturacao != 'SO_CA' and
    icorig.data between :dtBeginDate and :dtEndDate and
    (fac.codagenciafat = :iIdAgency or :iIdAgency is null);

  • How to view what is using up the temporary tablespace

    Hi all
    I am running into a problem - my temporary tablespace is being completely used up.
    How would i find out what is using up this? Technically it has enough space to function properly but now we are getting 0 bytes free.
    thanks!

    There is nothing wrong if a temporary tablespace appears as full. It is very normal. I
    For more information about temporary tablespace usage query V$SORT_USAGE and V$SORT_SEGMENT .
    For more information go to this link
    http://asktom.oracle.com/pls/ask/f?p=4950:8:14327914180898764224::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:374218170986

  • Oracle 8.0 - how to identify temporary tablespace using dba v$ views

    Hello experts,
    can someone tell me how can I query a v$ or dba_ view to identify which are the temporary tablespace in a 8.0.5 Oracle database?
    Thx in advance.

    8.0 did not have the concept of tempfiles.
    However, a Tablespace could be created as a Temporary tablespace (still using "normal" datafiles) with CREATE/ALTER TABLESPACE tablespacename TEMPORAR.
    Meaning : You can't query DBA_TEMP_FILES or V$TEMPFILEs. You have to query DBA_USERS to identify the designated Temporary Tablespace(s) and then query DBA_TABLESPACES for the storage parameters and then query DBA_DATA_FILES for the files.
    You can also query DBA_TABLESPACES for CONTENTS='TEMPORARY' and then query DBA_DATA_FILES.
    Hemant K Chitale

  • Temporary tablespace - used and freespace size and percentage

    Hi,
    anyone here have a gd script to query the above?
    need to correctly calculate.
    thanks

    You should be more concerned of what's being used in temporary tablespace. As Oracle will reuse temp segment, free space in temp tablespace is not a good indicator.
    select * from v$sort_usage;

Maybe you are looking for

  • Multiple Apple Id's on Supervised ipads

    I've prepared (using Apple Configurator) our school ipads and now want to give a group to our preschool teachers.  I've created an apple id on the computer that is the school Apple ID and I've loaded a bunch of free apps onto the pads (still need to

  • Firefox crashes after Flash videos play with black screen

    Whenever I'm playing a video with Flash, the screen is black although the sound is playing. Then Firefox is crashing. I'm using the newest Firefox Version (28.0) on Mac OS 10.9.2 (newer Macbook Air) and the newest Flash version. I tried Safe mode and

  • Will OSX Lion remember my different display setups?

    I have a projector that I plug into at work and then at home I have an external display. I set these monitors up differently (e.g. Projector is the second monitor and my external screen at home is set up as the primary monitor) Will I have to go to t

  • Custom bonded warehouse plant

    hi in case of import under custom bonded ware house plant i do 1) PO in bondedwarehoue plant 2)GR in same plant then after STPO i m transfering to  original plant by paying duty. But before placing order i dont know whether material will go in custom

  • Home Location

    Does any please no how to set home location on ovi maps for the Nokia 5800. Have have tried and searched everywhere but cant work out how to! For instance if i go to Drive/ Drive Home How do i set up my home location many thanks for helping stu Solve