2012-02-03 17 views
5

chúng tôi có khách hàng gặp phải vấn đề với một số dữ liệu không nhất quán và chúng tôi đã cung cấp cho họ truy vấn để khắc phục sự cố.Làm thế nào để tìm ra không gian tạm thời sẽ được yêu cầu bởi một truy vấn sql trên một cơ sở dữ liệu?

Bây giờ trước khi chạy truy vấn, khách hàng hỏi tôi một truy vấn sẽ cung cấp khoảng trống tạm thời cần thiết để chạy truy vấn đó. Điều này thực sự quan trọng vì truy vấn này có thể ảnh hưởng đến rất nhiều mục nhập trong bảng.

Đây là truy vấn mà tôi đã gửi cho họ để khắc phục vấn đề của họ:

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; 

Nhờ sự giúp đỡ của bạn!

+0

Tại sao câu hỏi này được gắn thẻ với java? –

+0

sry Tôi thường làm việc trên java và thêm nó theo mặc định – MozenRath

+0

retagged theo lời khuyên ur – MozenRath

Trả lời

3

Oracle EXPLAIN PLAN có thể cung cấp cho bạn một số ý tưởng về chi phí truy vấn.

+0

tôi có thể hiểu điều đó nhưng tôi cần không gian tạm thời cụ thể – MozenRath

+0

làm thế nào để có được không gian tạm thời gần đúng hoặc chính xác? – MozenRath

+2

Kế hoạch giải thích bao gồm ước tính số lượng không gian tạm thời được yêu cầu. Có lẽ công cụ bạn đang sử dụng để xem xét kế hoạch giải thích không hiển thị cột đó theo mặc định? Nhưng bạn chắc chắn có thể thấy nó như thế này: 'giải thích kế hoạch cho [truy vấn của bạn];' và sau đó 'chọn * từ bảng (dbms_xplan.display);'. Tìm cột TempSpc. Lưu ý rằng không gian tạm thời không nhất thiết có nghĩa là vùng bảng tạm thời; nếu tất cả các phân loại hoặc băm có thể được thực hiện trong bộ nhớ thì không cần có vùng bảng tạm thời. Thật không may, dự đoán sử dụng bộ nhớ là vô cùng phức tạp. –

Các vấn đề liên quan