0

这与将巨大的字符串参数传递给存储过程并不完全相同......

我有一个 SQL Server 2008 sproc,它接受一个 id int 和一个大字符串并将其插入到表中。sproc 由 .NET 4.0 代码调用,该代码将 aFile.ReadAllText转换为字符串,然后将其发送到 sproc。字符串的来源是一个文本文件。将来整天将许多 100mb 文件读入不可变的“使用一次”字符串,然后将其发送到 SQL Server 的想法在 C# 端听起来很浪费内存。

将文本从磁盘流式传输到存储过程的更智能方法是什么?我可以将当​​前Varchar(Max)参数更改为任何更有意义的参数。

所有想法都表示赞赏。

谢谢。

4

1 回答 1

0

对于您的情况,我看到了三个选项:

  1. 保留现有设计
  2. 在 SP 中使用 OPENROWSET
  3. 文件流

如果文件远离服务器并且具有唯一的名称,则第一项是最好的。

第二项将把工作从 c# 端移开,但您必须处理文件上 SQL 的读取权限、命名约定和文件清理。

第三项是当前 SQL Server 2008 的最佳实践。有许多 HOW2 文章可供参考。此选择将允许 SQL 管理文件,同时将文件保存在 NTFS 存储上

于 2011-06-02T17:16:08.300 回答