改善SqlFileStream的数据传输?

时间:2015-12-16 10:21:53

标签: sql-server tcp filestream wireshark

SQL Server 2014设置为3的情况下运行FilestreamEffectiveLevel。因此,我可以使用C#中的SQLFileStream轻松检索文件:

using (var stream = new SqlFileStream(path, transactionContext,
    FileAccess.Read, FileOptions.SequentialScan, 0))
{
    byte[] data = new byte[stream.Length];
    stream.Read(data, 0, data.Length);
}

这样可行,但看起来这段代码会导致网络被标有TCP标志的PSH包裹淹没。这实质上意味着TCP缓冲区没有得到有效利用。它不使用1500字节的MTU,而是使用54字节(空ACK)或200-300字节。 (我们使用WireShark进行了一些测试。)

造成这种情况的原因是什么?这是驱动程序问题还是我们需要更改C#代码以某种方式优化网络利用率?

1 个答案:

答案 0 :(得分:0)

原来是代码的另一部分。 SqlFileStream表现良好。