【问题标题】:Buffer Pool in SQL Server FileStreamSQL Server FileStream 中的缓冲池
【发布时间】:2017-09-19 20:21:25
【问题描述】:

FileStream 的最佳功能之一是:The SQL Server buffer pool is not used; therefore, this memory is available for query processing.

我遇到了一个问题,如果我从FileStream 表中为返回文件创建存储过程,是否会使用 SQL Server 缓冲池?是否可以利用 FileStreamT-SQL 和 SP 的优势?

谢谢

【问题讨论】:

    标签: sql-server sql-server-2014 filestream sql-server-2016


    【解决方案1】:

    如果使用 GET_FILESTREAM_TRANSACTION_CONTEXT sql 缓冲池不使用。

    使用托管 API 访问 FILESTREAM 数据

    使用 Win32 Streaming 访问 FILESTREAM 数据有许多 比使用 TSQL 访问它的优势。访问 FILESTREAM 时 data 使用 TSQL,SQL Server 读取 FILESTREAM 数据的内容 文件并将其提供给客户。 SQL Server 内存用于 读取数据文件的内容。使用访问 FILESTREAM 数据 Win32 Streaming 不使用 SQL Server 内存。此外它还允许 应用程序利用流媒体功能的优势 NT 文件系统。

    虽然使用 Win32 Streaming 访问 FILESTREAM 数据有许多 优点,与语法相比,使用起来有点复杂 需要从 TSQL 访问它。在客户端应用程序可以访问之前 FILESTREAM 数据,它需要找出逻辑路径 唯一标识 FILESTREAM 数据存储中的给定文件。这 可以通过使用 FILESTREAM 列的“PathName”方法来实现。 请注意,PathName() 函数区分大小写。以下 示例显示如何检索与 FILESTREAM 数据的一列。 https://www.red-gate.com/simple-talk/sql/learn-sql-server/an-introduction-to-sql-server-filestream/

    用于测试使用缓冲池,同时读取数据使用计数器

    SQLServer:Buffer Manager\Extension page writes/sec

    SQLServer:Buffer Manager\Extension page reads/sec

    【讨论】:

      【解决方案2】:

      如果您只读取/写入数据,您将不会获得任何性能优势,因为您只会将数据从 Sql 客户端传输到文件系统并通过附加节点(SQL Server)返回。但它允许统一您的数据存储并使用单一方法来存储您的不同数据(关系数据或非关系数据)。当然,如果您要在 SQL Server 中同时处理非关系数据和关系数据,您将获得优势。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-19
        • 1970-01-01
        相关资源
        最近更新 更多