• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Хранение в Sql Server 2005 данных большого объёма

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Кто-нибудь пробовал хранить в SQL Server 2005 большие файлы? 50+Мб. Речь идёт об интерфейсе СУБД с C#, .NET.
Я использую для этого тип varbinary(MAX). Читать данные просто: можно сразу получить byte[], можно получить поток чтения (код на память не вспомню).
Проблема возникла с записью таких данных. Я могу в запрос подставлять простой массив byte[], но тут требуется весь большой файл загрузить в оперативку и запрос этот выполняется как-то непредсказуемо. Мне показалось из небольших тестов, что начиная с некоторого объёма данных, запись производится значительно дольше (20Мб = 3сек, 60Мб = 25сек). Для таких команд ещё приходится как-то выставлять разумный таймаут выполнения или убирать его вовсе. Как же можно большие данные записывать потоком? Есть ли другие предложения?
 
P

Pasha

Для: Димариус
Попробуй передавать stream в обертке .
 
G

Guest

Попробую.
А как быть с таймаутами? Совсем убирать не хорошо, а выставишь минут 10 - может и не хватить во время повышенных нагрузок на сервер.
 
G

Guest

Не, я не про много маленьких записей, а про одну большую. Ну, скажем, в ячейке файл целый хранится.

С потоками всё работает. Только время записи интересное. Для файла на 60Мб проводил 10 экспериментов записи. Вот времена (сек): 18 21 10 11 9 5 6 5 ... Сначала долго, потом быстро. Интересно, как сделать так, чтобы сразу быстро :unsure:
 
P

pushkin

А можно поинтересоваться, зачем хранить такие объемы данных в SQL базе? Нельзя ли в базе просто хранить пути к файлам?
 
G

Guest

Можно, но мы приняли решение хранить их в БД. Это проще, не надо заботиться о том, есть файл, нет, синхронизировать с записями в БД... Тем более у нас архитектура такая, что прога на одном сервере, а СУБД с рейдом на другом и там нет нетбиоса, чтобы файлы напрямую заливать.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!