У меня есть запрос, возвращающий большой XML, его размер может достигать 1 ГБ в крайних случаях, но обычно это занимает сотни мегабайт.
Очевидный подход, когда клиентская программа получает все данные одновременно и сохраняет их в памяти, в этом случае не работает.
Есть ли способ сделать результат вывода SQL Server в файл? Или, может быть, он может доставить полученные данные по частям? В последнем случае было бы тривиально направить вывод в файл без загрузки всего в память.
В соответствии с постановкой задачи полученный XML должен быть преобразован с помощью XSLT, что приведет к гораздо меньшему результату. В идеале сервер должен быть проинструктирован выводить данные XML в канал, который может быть подключен к движку xslt, выполняемому как отдельный процесс. Однако я не вижу способа сделать это.
Есть ли идеи?
Спасибо.
Клиентская программа должна быть написана на C # 3.
Версия SQL Server 2005, однако, если действительно хорошее решение существует только в 2008 году, это ограничение не следует считать существенным