解決MS Query 執行時出現 「記憶體已用完」 的錯誤

Out of Memory when running MS query32
Out of Memory when running MS query32

最近發現先前做好的 Excel 表格直接讀取 Oracle DB 資料(作法請參考: 由Excel直接撈取Oracle DB的步驟與應用 ), 需要重新編輯的時候常常發現記憶體不足, 剛開始認為是Windows執行久了, 裡面總有些不乾淨去影響到軟體的執行, 花了將近一天重新安裝 Windows 7 (Sp1) 及 Windows XP (SP3) 分別來測試, 依舊得到相同的結果, 確認應該跟環境不相關, 再度利用 Google 來找答案, 這次運氣就很好直接找到對解決方案.

找到的連結 請點選 , 主要是說 MS Query 一開始執行時會主動把所有的 Table, View, 等等東西一口氣全部 Load 進來, 隨著資料庫的成長當然記憶體就被吃光光, 連編輯都不給做, 這時候隨著 Luker 的方式來改變 MS Query 一開始執行的行為來避免掉這個錯誤.

首先到安裝 Office 的路徑上手動執行 MS Query

Location of MS Query32
Location of MS Query32

 

選擇檔案 -> 表格定義

Table Definition
Table Definition

 

接下來選擇資料來源及輸入連結資料庫的 ID/Password, 選擇”選項”, 把表格及同義字的勾拿掉, 讓 MS Query 載入時不會去讀取這兩個部分, 關掉 MS Query, 下次由 Excel 去找編輯資料時, 就不會再產生記憶體不足的情況了.

Uncheck Table and Synonyms
Uncheck Table and Synonyms

 

心得:

1. Office 2010 變更/新增 Query 後, 再 Office 2003 變成無法自動更新, 原因不明.

2. 安裝測試機器時 Windows7 SP1 配上 Oracle 10g Client 無法正常運作, 必須安裝 11g client 才可正常運作

 

發表迴響