SQL Server Sproc Большой строковый параметр? - PullRequest
0 голосов
/ 02 июня 2011

Это не то же самое, что передача огромного строкового параметра в хранимую процедуру ....

У меня есть SQL Server 2008 sproc, который берет id int и большую строку и вставляет ее в таблицу. Sproc вызывается кодом .NET 4.0, который делает File.ReadAllText в строку и затем отправляет ее sproc. Источником строки является текстовый файл. Мысль о будущем чтении многих файлов размером 100 Мб в течение всего дня в неизменяемые строки «использовать один раз» и последующей отправке их на SQL Server звучит неэффективно с точки зрения памяти на стороне C #.

Что является более разумным способом для потоковой передачи текста с диска на sproc? Я могу изменить текущий параметр Varchar(Max) на все, что имеет смысл.

Все идеи оценены.

Спасибо.

1 Ответ

0 голосов
/ 02 июня 2011

Я вижу три варианта для вашей ситуации:

  1. Сохранить существующий дизайн
  2. Использовать OPENROWSET в SP
  3. Файловый поток

Первый пункт лучше всего подходит, если файлы удалены от сервера и имеют уникальные имена.

Второй пункт возьмет на себя работу со стороны c #, но вам придется иметь дело с разрешениями на чтение для SQL файла, называяСоглашение и очистка файла.

Третий пункт - это наилучшая на данный момент методика для SQL Server 2008. Существует множество статей на HOW2.Этот выбор позволит SQL управлять файлом, сохраняя его в хранилище NTFS

...