在SAP Business One中如何才能提高系統內存分配
以下內容主要針對SAP Business One 軟件在使用過程中可能遇到的內存不足的問題,所對其進行優化和改善作用。按照企業業務發展需求的不同作為其使用的ERP系統SAP Business One (簡稱B1)數據庫的數據量也隨之增大,在這種情況下會導致操作系統在運行某些任務的時候,例如在生成復雜報表、系統同時運行多個add-on插件等情況下,操作系統會報錯,這也說明了其內存不足,或者操作系統直接失去響應,而非正常關閉。關于這個問題需要從操作系統上進行查找原因,實際理論上而言,不管電腦系統安裝了多少物理內存,對一個32位的應用程序來說在內存空間中能使用的內存*多只有4GB。而在32位的windows系統中,正常情況下系統限制是2GB容量,另外2GB是被操作系統內部保留使用。而我們知道,目前發行的B1還是典型的32位Windows程序,受限于Windows系統的這個限制,B1能使用的內存可能也就只有2GB。從這個理論得出對B1而言2GB的內存容量的確不夠使用,對B1來說一個大容量的數據操作時候或啟動了多個add-on的時候,內存的容量肯定不夠使用。關于這個問題,SAP早以意識到此問題的嚴重度,并做了一些策略來應對此問題。Windows可執行程序有一個標志位: IMAGE_FILE_LARGE_ADDRESS_AWARE 。當設置了這個標志位的時候,Windows就會試圖為該應用程序分配更多的內存空間。具體情況是這樣的:(參見 http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx)如果當前Windows是32位的,普通模式啟動,那么很遺憾,情況沒有改善。該32位應用程序得到的內存空間還是2GB,另外2GB為操作系統保留。如果當前Windows是32位的,且是以/3GB 啟動參數方式啟動的,那么,該應用程序將得到3GB的內存空間。而操作系統自身只保留1GB的空間地址。如果當前Windows是64位的,那么32位應用程序將直接得到4GB的內存空間。而我們的B1應用程序現在已經是設置了 IMAGE_FILE_LARGE_ADDRESS_AWARE 的標志位的。所以,我們可以利用這一特性,配合操作系統,將B1的尋址空間由2GB擴展為3GB甚至4GB。由此,原來很多因內存不夠而失敗的操作,將會有明顯改善,可能就會通過了。通過上面分析和描述,優質的方案是推薦大家使用64位的操作系統。隨著windows 7流行,64位的操作系統也越來越貼近日常的工作生活,甚至也包括了即將發布的windows 8 的64位版本。在這樣的情況下,作為客戶不必需要做任何的設置,B1系統直接就可以享受4G的內存空間!而如果你的操作系統還停留在32位,比如32位的Windows XP或者Windows Server 2003,那么根據上面的分析,還是有改進余地的,就是給操作系統加上啟動參數 /3GB。這樣可以讓B1的可用內存從2GB擴大到3GB。參閱http://technet.microsoft.com/en-us/library/bb124810(EXCHG.65).aspx , 修改啟動參數的具體操作如下: 鼠標右擊我的電腦,選擇屬性,出現系統屬性對話框。 點擊**選項頁。 在啟動和恢復設置中,點擊設置,出現啟動和恢復對話框。 在系統啟動中,點擊編輯。 在[Operating Systems]這一節,將/3GB這個參數添加到啟動項的/fastdetect的后面。 保存修改,關閉記事本。 點擊確定兩次,關閉打開的對話框。重啟動電腦,設置生效。