金蝶旗艦版4 0 供應鏈期末結賬提示記憶體溢位

2021-09-10 08:20:22 字數 1265 閱讀 6519

環境:金蝶旗艦版4.0+windows server2008r2+sql server 2005

客戶**鏈期末結賬的時候,結賬介面卡在結轉本期成本,過後無響應,與此同時系統記憶體佔用率直線飆公升,直至系統提示記憶體溢位。此時調出系統任務管理器顯示記憶體佔用率已經達到97%

初步用k3maindbg跟蹤元件無報錯

後用sql***跟蹤發現金蝶最後執行的語句為:

delete from icbal where 過濾條件
sql server查詢分析器執行該語句耗時緩慢,最後查詢分析器同樣報錯『超出記憶體』

後台執行查詢語句

select * from icbal where 過濾條件
耗時長,查詢結果百萬行

查閱往期icbal,發現資料都只有幾萬行,由此推定是icbal導致的結賬異常

繼續查詢查詢發現icbal中重複出現了同乙個物料+同乙個批號,記錄下來,在金蝶裡面查詢該物料的庫存,但是庫存為0,庫存為0按道理是不會顯示的,繼續跟蹤

我查詢了一下金蝶官方的結賬後台流程

可以得知icbal的資料始發點是icinvbal,而icinvbal的取數又是**於庫存單據

通過查詢icstockbillentry表,過濾語句為

select a.fdate,a.fbillno,b.fitemid,b.fbatchno

from icstockbillentry b

inner join icstockbill a on a.finterid=b.finterid

where

b.fitemid=11948 and b.fbatchno='問題批號 '

order by a.fdate

發現了問題所在

該物料在某一期中,出現了兩個不一樣的批號,括號乙個是中文乙個是英文,

對於資料庫來說,這兩個是乙個東西,但是金蝶可能就不是這麼認為的,導致金蝶沒辦法判斷該物料的出入庫情況,讓金蝶以為這個物料還沒有完全出庫,從而導致往icbal中重複寫入該值

問題找到了,解決就很簡單了,**鏈反結賬到問題批號第一次出現的那期,兩個批號選乙個,用sql把問題單據的批號統一更新一下,重新結賬。問題解決

vs 2010旗艦版問題

在vs2010學習版中這個可以執行!為啥在vs2010旗艦版中執行不了啊!錯誤提示在下面 code include using namespace std template void jhuan t a,t b struct kt template void jhuan kt kt1,kt kt2 ...

VS2010旗艦版無法安裝

今天早上裝vs2010旗艦版,可是剛開始裝的時候它就要求強制重啟,但重啟之後就報告安裝失敗。如下圖所示 因為我的電腦是win10企業版,本身已經安裝.net framework 我vs也會安裝.net framework,我以為是這兩者衝突。結果後來才想起來自己將windows modules in...

Intellij IDEA 最新旗艦版註冊啟用破解

1 2017 年親測參考 安裝intellij idea 最新版 啟動intellij idea 輸入license 時,選擇輸入 license server 在 license serveraddress 輸入框中輸入 或者。然後單擊 activate 按鈕就可啟用 親測,該方法對於 2016....