powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / OutOfMemoryException при чтении SqlDataReader
6 сообщений из 31, страница 2 из 2
OutOfMemoryException при чтении SqlDataReader
    #38130017
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А обязательно всю строку хранить в памяти?
Может есть смысл попробовать через stream писать в локальный файл частями (так же и считывать)?
Сам недавно боролся с аналогичной проблемой, stream помог.
...
Рейтинг: 0 / 0
OutOfMemoryException при чтении SqlDataReader
    #38130054
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belowzero2буфер создается, а вот создание строки вылетает.

Разбираемся дальше.
зачем массив в строку превращать? при таком размере вряд-ли полезными будут стандартные строковые операции
...
Рейтинг: 0 / 0
OutOfMemoryException при чтении SqlDataReader
    #38130155
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор, забэкапь базу с одной табличкой с этим 30-метровым varchar(max) и давай сюда.
...
Рейтинг: 0 / 0
OutOfMemoryException при чтении SqlDataReader
    #38130535
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в создании длинных строк. .NET почему-то не может создать длинную строку (размер данных оказался около 250M)




гавнакодец (обьем String ~ 2Gb)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <gcAllowVeryLargeObjects enabled="true"></gcAllowVeryLargeObjects>
  </runtime>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Linq;
using System.Runtime;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var totalMem = GC.GetTotalMemory(true);
                using (var mpf = new MemoryFailPoint(2048))
                {
                    var str = new String('q', 1024 * 1024 * 1000);
                    Console.WriteLine("Allocated");
                }
            }
            catch (InsufficientMemoryException ex)
            {
                Console.WriteLine("{0}", ex.Message);
            }

            Console.ReadLine();

        }
    }
}





Стандартными средствами врядли можно выжать больше. Для byte[] массивов едва ли картина краше (ограничение на indexer), а для массивов типа MyStruct[] обьем может быть много больше, но количество элементов ограничено размером indexer'a.
...
Рейтинг: 0 / 0
OutOfMemoryException при чтении SqlDataReader
    #38130551
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. Компилить надо пд x64, я тестировал в release.
...
Рейтинг: 0 / 0
OutOfMemoryException при чтении SqlDataReader
    #38130561
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. По теме воздержусь :)
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / OutOfMemoryException при чтении SqlDataReader
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]