繁体   English   中英

如何缓冲BCP输出而不是写入文件

[英]How to buffer BCP output rather than writing to a file

我正在使用BCP从SQL Server导出数据。 输出文件已写入磁盘,但需要重新编码。 使用C#,我将文件重新编码为UTF8并将其重新保存到磁盘。 照原样,它必须保存输出,重新编码,然后重新保存。 似乎效率低下。

我想知道是否有一种方法可以消除两次​​保存数据的麻烦。 例如,将输出定向到内存或在将BCP输出文件写入磁盘之前拦截它在内存中?

任何意见是极大的赞赏。

将数据加载到C#应用程序中,然后使用任意格式将其写入磁盘。 与自定义应用程序相比,BCP没有固有的效率优势。 您可能会在ADO.NET + C#中使用比基于C ++的BCP使用更多的CPU。 这是要测试的。

您应该查看Windows命名管道。 与Unix概念相似,但创建起来并不容易。

该博客文章提供了一种工具,该工具可以设置管道并自动压缩写入其中的“文件”数据。 我们使用它来压缩bcp输出,而无需将未压缩的文件写入磁盘。

提供了代码,因此您“应该”能够对其进行修改以转换编码,而不是压缩数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM