Sybase Ase 데이터베이스에서 읽은 레코드를 전송하고 새로 생성 된 로컬 Sybase Asa 데이터베이스를 작성하는 응용 프로그램을 작성했습니다. 전송할 레코드는 거의 110,000 개입니다.데이터 전송시 "메모리 부족"오류가 발생했습니다.
내 로컬 컴퓨터에서 응용 프로그램이 성공적으로 실행되지만 (Windows7- 32 비트 - 3GB 램), 개발 서버 (Windows Server 2008 - 64 비트 - 8GB 램)에서 "내 메모리가 부족합니다"오류가 발생합니다.
- 레코드 개수가 ~ 40.000을하고있다 "작업 세트 - 개인"~ 1.800.000kb이 (2,8gb)
- GC 총 메모리 점진이 안정된이다 여기 내 로그 흐름
;
- 자세한 정보 작업 설정 - 개인 : 507948K, GC GetTotalMemory : 49229720
- 자세한 정보 작업 설정 - 개인 : 918620K, GC GetTotalMemory : 51377000
- 자세한 정보 작업 설정 - 개인 : 1328568K, GC GetTotalMemory : 52245316
- 자세한 정보 작업 설정 - 개인 : 1739128K, GC GetTotalMemory : 52,978,364 자세한 정보 작업 설정
- - 개인 : 1813940K, GC GetTotalMemory : 51,567,670 메모리 부족
- - 을
또한 로컬 sybase 데이터베이스를 생성하기위한이 배치 파일.
set dbToolsPath=%1
set dbDirectory=%2
set scriptsDirectory=%3
set dbNameWOExtension=%4
REM Add trailing back slashes if necessary
IF NOT %dbToolsPath:~-1%==\ SET dbToolsPath=%dbToolsPath%\
IF NOT %dbDirectory:~-1%==\ SET dbDirectory=%dbDirectory%\
IF NOT %scriptsDirectory:~-1%==\ SET scriptsDirectory=%scriptsDirectory%\
set mfgDBFilePath=%dbDirectory%%dbNameWOExtension%.db
set mfgDBLogFilePath=%dbDirectory%%dbNameWOExtension%.log
REM Following four lines can be moved to code
attrib -R %mfgDBFilePath%
del %mfgDBFilePath%
attrib -R %mfgDBLogFilePath%
del %mfgDBLogFilePath%
REM TODO: Add explanation about the switches
cd /d %scriptsDirectory%
**%dbToolsPath%dbinit.exe -n -p 4096 -z 1252LATIN1 %mfgDBFilePath%
%dbToolsPath%dbspawn.exe -p dbeng10 -n WfDBServer %mfgDBFilePath%
%dbToolsPath%dbisql.exe -c "eng=WfDBServer;dbn=%dbNameWOExtension%;uid=dba;pwd=sql" -nogui PE_WfDB_MFG.sql
%dbToolsPath%dbstop.exe -c "eng=WfDBServer;uid=dba;pwd=pluto" -y**
이들은 획득 한 지식이지만이 오류로 인해 전송이 중단 된 이유를 이해할 수 없습니다. 내 컴퓨터에서 모든 것이 괜찮습니까? 서버에서 다를 수있는 것은 무엇입니까? 문제를 어디에서 찾아야합니까? 또한 나는 개인의 증분을 어떻게 설명해야합니까?
감사합니다. kiran! 그것은 효과가있다. 너는 나에게 좋은 차례를했다 :) – htcdmrl