建议和改进 SQL Server 文件流的性能准则

适用于: Microsoft SQL Server

摘要


SQL Server 文件流功能允许您将 varbinary(max) 二进制大对象数据作为文件存储在文件系统中。 当您有大量的中行 FILESTREAM 容器,即基础存储为文件流列和 FileTables,您可以结束与包含大量文件的文件系统卷。 若要获得最佳性能,处理从数据库以及文件系统集成的数据时,务必要确保文件系统进行优化调整。 下面是一些可从文件系统角度的优化选项:
  • 海拔高度检查 SQL Server 文件流筛选器驱动程序 [例如 rsfx0100.sys]。 评估存储堆栈与的卷文件流功能存储文件的位置加载的所有筛选器驱动程序,并确保该 rsfx 驱动程序位于堆栈的底部。 您可以使用 FLTMC。EXE 控制程序来枚举特定卷的筛选器驱动程序。 下面是示例输出从 FLTMC 实用程序: C:\Windows\System32 > 筛选器 fltMC.exe
    筛选器名称 Num 实例 海拔 框架
    Sftredir 1 406000 0
    MpFilter 9 328000 0
    luafv 1 135000 0
    FileInfo 9 45000 0
    RsFx0103 1 41001.03 0
  • 请检查该服务器已禁用的文件的"上次访问时间"属性。 此文件系统属性保存在注册表中: 关键名称: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 名称: NtfsDisableLastAccessUpdate 类型: REG_DWORD 值: 1
  • 请检查该服务器已禁用 8.3 命名。 此文件系统属性保存在注册表中: 关键名称: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 名称: NtfsDisable8dot3NameCreation 类型: REG_DWORD 值: 1
  • 检查,FILESTREAM 目录容器没有文件系统加密或文件系统启用压缩,如时访问这些文件,这些可能会带来一定的开销。
  • 从提升的命令提示符下运行fltmc 实例,请确保与您尝试还原的卷没有筛选器驱动程序相连。
  • 请检查文件流目录容器没有 300000 个以上的文件。 可以使用 sys.database_files 目录视图中的信息来找出哪些目录的文件系统中存储文件流相关的文件。 这可以防止通过让多个容器。 (请参见下一个项目符号项的详细信息)。
  • 只有一个文件流文件组,与在相同的文件夹下创建所有数据文件。 文件创建大量的文件可能会受到大的 NTFS 索引,也可以变得很零碎。
    • 通常有多个文件组应做到这一点 (应用程序使用分区或包含多个表,每个转到其自己的文件组)。
    • 与 SQL Server 2012年及更高版本,您可以有多个容器或下文件流文件组的文件,并且应用循环分配方案。 因此每个目录的 NTFS 文件的编号将变小。
  • 备份和恢复可能会变得更快与多个 FILESTREAM 容器,用于存储容器的多个卷。
    • SQL Server 2012年支持多个容器,每个文件组,可以使操作更容易。 没有复杂的分区方案可能需要管理大量的文件。
  • NTFS MFT 可能会变得支离破碎,并且,可能会导致性能问题。 在卷的大小,取决于 MFT 保留大小以便您可能会或可能不会遇到这。
    • 您可以检查与 MFT 出现碎片整理 /A /V c: (在实际的卷名更改c: )。
    • 可以通过使用fsutil 行为设置 mftzone 2预留更多的 MFT 空间。
    • 应从防病毒软件扫描中排除文件流的数据文件。  

      注意:Windows 服务器 2016年自动启用 Windows Defender。请确保 Windows Defender 被配置为排除文件流文件。如果不这样做可导致性能降低用于备份和还原操作。

      有关详细信息,请参阅配置和验证排除 Windows Defender 防病毒扫描的

更多信息


文件流功能概述sp_filestream_force_garbage_collection (事务处理 SQL)Fltmc.exe 控件程序有关的信息NtfsDisableLastAccessUpdateNtfsDisable8dot3NameCreation

建议和改进 SQL Server 文件流的性能准则

下表提供有关产品或自动检查此条件和对规则进行评估所依据的 SQL Server 版本的 SQL Server 实例中的工具的详细信息。
规则的软件规则标题规则说明对规则进行评估所依据的产品版本
系统中心顾问SQL Server 文件流功能可以受益于文件系统设置更改系统中心顾问确定 SQL Server 实例是否使用文件流功能,并且还是两个相关的注册表项的设置设置本文中所述。 检查顾问警报"收集信息"一节中提供的信息,并进行所需的更改的注册表项。SQL Server 2008SQL Server 2008 R2
SQL Server 2008 R2 最佳实践分析器 (SQL Server 2008 R2 BPA)文件系统需要更好的文件流性能调优SQL Server 2008 R2 最佳实践分析器 (SQL Server 2008 R2 BPA) 提供一个规则来检测中文件系统没有配置最佳文件流性能更好的情况。 如果运行 BPA 工具时,您会遇到的标题为"引擎-文件系统需要调整文件流性能更好的"的警告,则必须按照本文以提高文件系统性能中讨论的建议。SQL Server 2008SQL Server 2008 R2
SQL Server 2012年最佳实践分析器 (SQL Server 2012 BPA)文件系统需要更好的文件流性能调优SQL Server 2012年最佳实践分析器 (SQL Server 2012 BPA) 提供一个规则来检测中文件系统没有配置最佳文件流性能更好的情况。 如果运行 BPA 工具时,您会遇到的标题为"引擎-文件系统需要调整文件流性能更好的"的警告,则必须按照本文以提高文件系统性能中讨论的建议。SQL Server 2012