2013-07-04 5 views
0

Я написал приложение для переноса записей как чтение из базы данных Sybase Ase и запись новой созданной локальной базы данных Sybase Asa. Есть около 110 000 записей для передачи.Ошибка «из памяти» при передаче данных

На моем локальном компьютере приложение успешно запускается (Windows7-32bit - 3 ГБ оперативной памяти), но на сервере разработки (Windows Server 2008 - 64 бит - 8 ГБ), я получаю ошибку «OUT OF MEMORY», когда мой;

  • количество записей составляет ~ 40.000 и "работает комплект- частный" ~ 1.800.000kb (2,8gb)
  • дс инкрементации общая память стабильная

Здесь мой журнал потоков;

  • Многословные Рабочий набор - Private: 507948K, GC GetTotalMemory: 49229720
  • Многословные Рабочий набор - Private: 918620K, GC GetTotalMemory: 51377000
  • Многословные Рабочий набор - Private: 1328568K, GC GetTotalMemory: 52245316
  • Многословные Рабочий набор - Private: 1739128K, GC GetTotalMemory: 52978364
  • Многословные Рабочий набор - Private: 1813940K, GC GetTotalMemory: 51567670
  • из памяти -

А также этот командный файл для создания локальной базы данных sybase asa;

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** 

Полученные знания, но я не могу понять, почему прервал передачу с этой ошибкой. Все в порядке на моей машине, что может быть по-другому на сервере? Где я должен искать проблему? Также как я должен прокомментировать добавление частного?

ответ

1

Возможно, проблема связана с неправильной платформой (x86, я думаю) в конфигурации проекта. Вы можете выбрать AnyCPU или x64 в качестве платформы и перестроить приложение. См. Отмеченный ответ .NET Out Of Memory Exception - Used 1.3GB but have 16GB installed

+0

Спасибо, киран! Он работает. Вы сделали мне хороший поворот :) – htcdmrl