2012-02-03 7 views
5

mamy klienta, który napotkał problem z niespójnymi danymi, a my daliśmy im zapytanie, aby to naprawić.Jak znaleźć przestrzeń tymczasową, która będzie wymagana przez zapytanie sql w bazie danych?

Teraz przed uruchomieniem kwerendy klienci pytają mnie o kwerendę, która da przestrzeń tymczasową wymaganą do uruchomienia tego zapytania. Jest to rzeczywiście ważne, ponieważ zapytanie to może mieć wpływ na wiele wpisów w tabeli.

Oto zapytanie, które wysłałem je naprawić swój problem:

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; 

dzięki za pomoc!

+0

Dlaczego to pytanie jest oznaczone jako Java? –

+0

sry Zwykle pracuję nad java i dodałem domyślnie – MozenRath

+0

retagged zgodnie z poradą – MozenRath

Odpowiedz

3

Wyrocznia Oracle EXPLAIN PLAN może dać ci pojęcie kosztów zapytań.

+0

mogę to zrozumieć, ale potrzebuję tymczasowej przestrzeni specjalnie – MozenRath

+0

jakikolwiek pomysł w jaki sposób uzyskać przybliżoną lub dokładną przestrzeń tymczasową? – MozenRath

+2

Plan wyjaśniający zawiera szacunkową ilość wymaganego miejsca tymczasowego. Być może narzędzie, którego używasz do spojrzenia na plan wyjaśniający, domyślnie nie wyświetla tej kolumny? Ale na pewno można to zobaczyć w ten sposób: 'wyjaśnij plan dla [twoje zapytanie];', a następnie 'wybierz * z tabeli (dbms_xplan.display);'. Poszukaj kolumny TempSpc. Zauważ, że przestrzeń tymczasowa niekoniecznie oznacza tymczasowy obszar tabel; jeśli całe sortowanie lub mieszanie może być wykonane w pamięci, nie jest wymagane tymczasowe miejsce tabel. Niestety przewidywanie użycia pamięci jest niezwykle skomplikowane. –

Powiązane problemy