2013-10-16 56 views
2

我正在逐步從Web服務中提取記錄。我需要將我們本地表中沒有被Web服務返回的任何記錄的狀態設置爲'DELETED';Oracle PL/SQL表內存使用量與臨時表的關係

我原本打算在PL/SQL表中存儲完整的記錄ID列表,然後根據它執行單個UPDATE語句。

我現在估計記錄集的內存使用量爲〜615MB。 PL/SQL表的內存佔用量與使用全局臨時表相比如何?它會使用Oracle內存的不同部分,例如PGA vs SGA嗎?

表現不是主要問題,因爲這個夜間工作已經在可接受的時間內在生產中運行。我不相信添加'DELETED'狀態部分會增加運行持續時間以影響用戶。

+0

「表現不是主要問題,因爲這是夜間工作。」 - 這將在未來咬你(當你的夜間工作還沒有完成時,人們在早上開始工作)。 –

+0

我可能應該通過說我知道工作需要多長時間,因爲它已經在Production中運行。 DELETED狀態位是新的,但我不認爲這會增加運行持續時間,足以影響用戶。 – retrodev

+0

不夠公平:-) –

回答

3

全局臨時表不會以這種方式使用內存。它將這些值存儲在只有您的會話有權訪問的臨時段中,並在不再需要時將其刪除。

你有沒有考慮過如果你的會話斷開會發生什麼?在任何一種方法中,你都會失去你所積累的價值。您可能只想使用常規表格。

+0

啊挺好的。謝謝 –

+0

這是從一個DBMS_SCHEDULER作業運行。這種方式可能會斷開嗎? – retrodev

+0

我會一直計劃恢復,無論是通過重新輪詢數據源還是通過存儲檢索到的數據。數據庫本身可能會崩潰或被關閉。 –