SQL Server BCP 减少输出文件大小

问题描述

我正在尝试优化每小时一次的 txt 文件导出并减小 sql Server 2008 R2 上的文件大小。

我创建了一个调用以下 BCP 的作业:

EXECUTE master.dbo.xp_cmdshell 'BCP "SELECT Columns FROM table  queryout D:\OUTPUT\Filename.txt -S Servername  -t "|" -T'

实际上txt文件大小在20MB左右,是不是在不删除列或在select中添加条件的情况下减小大小的方法?也许在 bcp 配置中? 提前致谢!

解决方法

您可以使用 -N 选项。 BCP 将使用 SQL Serves 自己的本机数据格式将数据导出到您指定的文件中。这可能会减少(很可能会)您的输出文件的大小。但是,要执行此操作,前提是目标也是 MS SQL Server。

正如 Charlieface 所说,xp_cmdshell 目前存在严重的安全问题。它真的应该被禁用并且根本不要在任何类型的服务器上使用(产品、开发、QA 等...)