我试图找到从 SQL Server 中将 XML 结果输出到磁盘的最快方法。这需要自动化和快速,因为有数千条记录需要处理。
这些是我知道的选项:
- sp_OACreate & sp_OAMethod
- xp_cmdshell & osql.exe
- SSIS 包
- 程序集 DLL(来自 .NET 的 SQLBulkCopy 类)
- 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
每个选项的基准列表会很有用,但我似乎无法在网上找到该信息。我的最后一个选择是实施和测试每个选项,看看哪个最快,但我希望有人能提供一些信息。