0

我正在使用 SqlFileStream 并且在构造对象时我不确定要使用哪个 FileOptions 和分配大小。我从另一篇文章中得到了这个,但它没有解释原因。有人可以帮助解释或给我推荐吗?

谢谢!

using (var destination = new SqlFileStream(serverPathName, serverTxnContext, FileAccess.Write, FileOptions.Asynchronous, 4096))
{
    await file.CopyToAsync(destination);
}
4

1 回答 1

1

由于您似乎正在尝试异步复制此文件,因此您可能需要FileOptions.Asynchronous. 这是访问文件的最快速响应方式,因为您不受限于一个线程。FileOptions.RandomAccess并且FileOptions.SequentialScan两者都使用缓存访问文件但是FileOptions.SequentialScan不能保证以最佳方式缓存。顾名思义,最大的区别在于随机或顺序访问文件的方式。只是跳过缓存并直接进入文件,这WriteThrough会更快但风险更大。

分配大小只是驱动器上的块大小。如果您通过0,它将使用默认大小,对于 NTFS 格式的驱动器,默认大小为 4KB。4096结果是 4KB,所以这里的人只是确保块大小是 4KB。

于 2016-06-09T19:13:25.910 回答