2012-02-03 10 views
5

abbiamo clienti che hanno riscontrato un problema con alcuni dati incoerenti e abbiamo fornito loro una query per risolverlo.Come trovare lo spazio temporaneo che sarà richiesto da una query sql su un database?

Ora, prima di eseguire la query, i clienti mi chiedono una query che fornisca lo spazio temp richiesto per l'esecuzione di tale query. Questo è davvero importante in quanto questa query potrebbe influire su molte voci nella tabella.

Ecco la domanda che ho inviato loro di risolvere il loro rilascio:

declare 
    cursor cur is select distinct SEQID from D_LEAD where SEQID IN(SELECT SEQID FROM D_LEAD WHERE CURR_FLAG = 1 GROUP BY 
    SEQID HAVING COUNT(SEQID) >1); 

    seq NUMBER; 

begin 

    open cur; 
    loop 
    fetch cur into seq; 
    update D_LEAD set CURR_FLAG = 0 where LEAD_ID IN (SELECT LEAD_ID FROM D_LEAD WHERE ((LEAD_ID != (SELECT MAX(LEAD_ID) FROM D_LEAD WHERE SEQID=seq)) AND SEQID=seq)); 
    exit when cur%NOTFOUND; 
    end loop; 
    close cur; 
commit; 
end; 

Grazie per il vostro aiuto!

+0

Perché questa domanda è contrassegnata con java? –

+0

sry Io di solito lavoro su java e l'ho aggiunto di default – MozenRath

+0

riadattato come da avviso – MozenRath

risposta

3

Oracle EXPLAIN PLAN potrebbe darvi un'idea dei costi di query.

+0

posso capirlo, ma ho bisogno di spazio temporaneo nello specifico – MozenRath

+0

qualsiasi idea su come ottenere lo spazio temp approssimativo o esatto? – MozenRath

+2

Il piano di spiegazioni include una stima della quantità di spazio temporaneo richiesta. Forse lo strumento che stai utilizzando per esaminare il piano spiega non visualizza quella colonna per impostazione predefinita? Ma puoi sicuramente vederlo in questo modo: 'spiega il piano per [la tua query];' e poi seleziona * dalla tabella (dbms_xplan.display); '. Cerca la colonna TempSpc. Si noti che lo spazio temporaneo non significa necessariamente tablespace temporaneo; se tutto l'ordinamento o l'hashing possono essere fatti in memoria, non è richiesto spazio tabelle temporaneo. Sfortunatamente, prevedere l'utilizzo della memoria è estremamente complicato. –

Problemi correlati