SQL Server 2017 - самый быстрый способ записи результатов запроса в файл XML - PullRequest
1 голос
/ 22 мая 2019

Я пытаюсь найти самый быстрый способ вывода результатов XML на диск из SQL Server. Это должно быть автоматизировано и быстро, так как нужно обработать тысячи записей.

Это варианты, которые мне известны:

  • sp_OACreate & sp_OAMethod
  • xp_cmdshell & osql.exe
  • Пакет служб SSIS
  • Сборка DLL (класс SQLBulkCopy из .NET)
  • утилита BCP

В настоящее время используется первая опция (sp_OACreate & sp_OAMethod) для создания нового файла для каждого результата. В моей среде клиентская статистика показывает, что для выполнения и генерации одного файла требуется 374 миллисекунды (почти ничего).

Я наткнулся на одну статью, в которой сравнивается использование sp_OACreate & sp_OAMethod с другими подходами, и это намного медленнее. Однако он не сравнивает производительность для BCP, SSIS, DLL или других подходов. https://www.sqlservercentral.com/articles/writing-to-a-file-using-the-sp_oacreate-stored-procedure-and-osql-the

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

...