NTFS 文件系统碎片和其他影响与数据库文件

kak*_*kaz 2 sql-server storage

可能大家都知道,NTFS 在设计上有一个缺陷,它会在文件系统使用过程中导致碎片化。另一方面,MSSQL 使用文件作为数据库存储方法,而且典型的做法是将几个大的数据库放在同一个文件系统上。数据库增长给出了碎片化的完美例子,它肯定会对 SQL 服务器性能产生一些影响。

问题:是否有关于文件系统碎片对数据库/MS SQL Server 性能影响的任何信息?或者是否存在用于 MS SQL Server 数据库存储的 NTFS 优化的隐藏专有层?SQL 服务器数据库真的是 NTFS 或 OS 上的普通文件将其视为特殊对象吗?如果在 NTFS 上工作的磁盘 checkdisk 更改了某些文件系统结构怎么办?在典型情况下,它可能会更改文件系统数据的内容(一旦我在此期间丢失了 Oracle 数据库,在 BSOD 重新启动检查后自动检查。是的,它是在物理突袭中。是的,它是自动检查磁盘文件系统修复,它破坏了回滚日志)。是否有任何已知的安全机制可以防止 MS SQL 发生此类事故?
有已知的原始分区存储技术,但 MSSQL 没有内置这种技术。

我不想就明显的陈述展开激烈的战争,问题是关于技术细节以及 MS 产品添加的两个之间的关系:NTFS 和 MS SQL Server。

Sea*_*ser 6

是否有关于文件系统碎片对数据库/MS SQL Server 性能影响的任何信息?

AFAIK 我们唯一知道的是错误 665(NTFS 元数据碎片),这与其说是性能问题,不如说是错误。

或者是否存在用于 MS SQL Server 数据库存储的 NTFS 优化的隐藏专有层?

没有。SQL Server 可以像它一样安装在任何系统上。它还在 ReFS 上运行。

SQL 服务器数据库真的是 NTFS 或 OS 上的普通文件将其视为特殊对象吗?

是的,被视为普通文件。没有什么特别的事情发生。真的。

是否有任何已知的安全机制可以防止 MS SQL 发生此类事故?

没有什么可以阻止底层文件系统因为损坏、写入缓存等而做坏事。我们确实有一些内置机制,例如预写日志 (WAL),但没有专门针对 NTFS。这超出了我们作为 Windows 应用程序的权限。我们告诉 Windows 我们想要做一些事情,使用普通的 Windows API ......之后会发生什么是任何人的猜测。

相关文档: