我有一个带有SQL Server 2014
数据的FILESTREAM
数据库(映射到同一服务器上的本地硬盘)。当我使用下面的代码检索10 MB文件时,数据检索(来自域上的服务器)几乎是不变的(第二次我的性能提高了约30%)。
现在,MSDN声明FILESTREAM uses the NT system cache for caching file data。
我的本地系统不应该缓存我的10 MB文件,使后续检索更快吗?为什么我没有看到这种效果?
byte[] data = null;
// Reading FILESTREAM data requires a transaction!
using (var transaction = new TransactionScope())
{
var fileStreamData = GetFileStreamData(guid);
using (var stream = new SqlFileStream(fileStreamData.FilePath, fileStreamData.TransactionContext, FileAccess.Read, FileOptions.SequentialScan, 0))
{
data = new byte[stream.Length];
stream.Read(data, 0, data.Length);
}
transaction.Complete();
}