问题描述
我正在尝试优化每小时一次的 txt 文件导出并减小 sql Server 2008 R2 上的文件大小。
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 等...)