如何启用FILESTREAM数据的系统缓存?

时间:2014-12-17 08:57:02

标签: c# sql-server filestream

我有一个带有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();
}

0 个答案:

没有答案