最近,我不得不增加數據提取腳本的體積,並且發現輸出缺少源表中存在的一些數據。任何人都可以提出一些可能導致此問題的想法嗎?當假脫機到文件時Oracle查詢輸出不完整
背景
的提取過程是一個SQL腳本,這是我從一個客戶端的sqlplus執行和後臺打印查詢結果輸出文件(在Windows Server 2008上運行)。
提取的數據包括客戶記錄及其交易記錄。每個客戶每個月可能有幾百個交易記錄。在增加負載之前,我們在過去3個月的交易中提取了大約10萬個客戶。現在已經增加到100萬。我預計輸出文件大約爲30GB。
交易表被分區爲每月分區。提取腳本包含對每個分區進行後臺處理的單獨查詢。看起來,3個月的交易中的第一個交易是輸出的,並且交易的第二個和第三個月缺失(儘管過程日誌顯示它仍然花費時間查詢所有分區)。
該SQL腳本是一個Perl腳本中調用一些有趣的進展
。最初的sql腳本一次性調用。我決定拆分sql並依次調用每個查詢,並且輸出的大小似乎增加了三倍(大約30GB)。爲什麼會發生這種情況? (這可能有助於與下面的實際問題。)
目前的問題
沒有與5個多的客戶和2種類型的交易表中,每個劃分爲日常分區的第二個數據庫。因此,要提取3個月的事務,腳本將在2個獨立表上的90個分區上進行查詢。同樣,第一個月的數據似乎已經成功輸出,但第二個月和第三個月不見了。上述解決方案不適用於此數據庫。
其他不尋常的事情是2個事務表輸出的2個文件的大小几乎都是4GB(4,294,967,362字節)。是否Oracle或其他東西會限制提取大小?
我正在使用Windows Server 2008,它將使用NTFS。我不認爲這是一個文件大小限制,因爲對於第一個數據庫,我可以獲得30Gb的提取。 – stevenl
我會嘗試一下sqlplus管道,看看我得到了什麼。謝謝。 – stevenl
那麼,我輸出到一個文件,它變成了好的。所以我想這看起來像一個sqlplus問題。 – stevenl