Bra*_*adC 19 fragmentation sql-server
我知道有真正的三个种类的碎片,我需要被关心的DBA:
SQL 数据文件中的索引碎片,包括聚集索引(表)碎片。使用 DBCC SHOWCONTIG(在 SQL 2000 中)或 sys.dm_db_index_physical_stats(在 2005+ 中)识别这一点。
SQL 日志文件中的VLF 碎片。运行 DBCC LOGINFO 以查看每个 SQL 日志文件中有多少 VLF。
硬盘驱动器上数据库文件的物理文件碎片。使用 Windows 中的“磁盘碎片整理程序”实用程序对此进行诊断。(灵感来自这篇优秀的博客文章)
很多注意力都集中在索引碎片上(请参阅Paul Randall 的这个出色的 Serverfault 回答),所以这不是我的问题的重点。
我知道我可以在最初创建数据库时通过规划合理的预期数据文件和日志大小来防止物理碎片(和 VLF 碎片),因为这种碎片最常发生于频繁的增长和收缩,但我有一些关于如何修复的问题一旦识别出物理碎片:
首先,物理碎片是否与企业 SAN 相关?我可以/应该在 SAN 驱动器上使用 Windows 碎片整理程序,还是 SAN 团队应该使用内部碎片整理实用程序?在 SAN 驱动器上运行时,我从 Windows 工具获得的碎片分析是否准确?
物理碎片对 SQL 性能的影响有多大?(让我们假设一个内部驱动器阵列,等待上一个问题的结果。)它比内部索引碎片更重要吗?或者它真的是同一类问题(驱动器必须进行随机读取而不是顺序读取)
如果驱动器存在物理碎片,碎片整理(或重建)索引是否是在浪费时间?在我解决另一个问题之前,我需要先修复一个吗?
在生产 SQL 机器上修复物理文件碎片的最佳方法是什么?我知道我可以关闭 SQL 服务并运行 Windows Defrag,但我也听说过一种技术,您可以执行完整备份,删除数据库,然后从备份还原到空驱动器。是否推荐使用后一种技术?从这样的备份中恢复是否也会从头开始构建索引,从而消除内部索引碎片?或者它只是将页面顺序返回到与备份时相同的顺序?(如果这很重要,我们正在使用带有压缩的 Quest Lightspeed 备份。)
更新:到目前为止,关于是否对 SAN 驱动器进行碎片整理(否)以及索引碎片整理在物理碎片驱动器上是否仍然值得(是)的好答案。
其他人关心权衡实际进行碎片整理的最佳方法吗?或者估计您预计对大型碎片驱动器进行碎片整理所需的时间长度,比如 500GB 左右?很明显,这是相关的,因为那时我的 SQL 服务器将关闭!
此外,如果有人有任何关于您通过修复物理碎片所做的 SQL 性能改进的轶事信息,那也很棒。Mike 的博客文章谈到了发现问题,但没有具体说明它进行了什么样的改进。
我认为这篇文章很好地概述了 SAN 驱动器的碎片整理
http://www.las-solanas.com/storage_virtualization/san_volume_defragmentation.php
基本点是不建议在 SAN 存储上进行碎片整理,因为在呈现 LUN 时,如果该位置已被 SAN 虚拟化,则很难关联磁盘上块的物理位置。
如果您使用的是 RAW 设备映射,或者您可以直接访问作为您正在使用的 LUN 的 RAID 集,我可以看到碎片整理产生积极影响,但如果您从共享 RAID 中获得“虚拟”LUN- 5 套,没有。
这个问题和答案的多个部分:
正如 Kevin 已经指出的那样,物理文件碎片与企业 SAN 存储并不真正相关 - 所以没有什么可添加的。它确实归结为 I/O 子系统,以及您有多大可能使驱动器在执行扫描时从更随机的 I/O 变为在执行扫描时更连续的 I/O。对于 DAS,您更有可能会这样做,对于复杂的 slice-n-dice SAN,可能不会。
文件系统级碎片整理 - 仅在 SQL 关闭时执行。我自己在这里从未遇到过问题(因为我从未对 SQL 数据库文件进行过在线、打开文件碎片整理),但我从客户和客户那里听到了大量关于发生奇怪损坏问题的轶事证据。一般的智慧是不要在网上用SQL来做。
索引碎片与文件碎片完全正交。SQL Server 没有文件碎片的概念——中间有太多的虚拟化层,它没有任何希望计算出实际的 I/O 子系统几何结构。然而,索引碎片,SQL 却是无所不知。无需从您已经引用的答案中重复我太多,索引碎片将阻止 SQL 执行有效的范围扫描预读,无论文件在文件系统级别如何碎片(或不碎片)。所以 - 如果您看到查询性能下降,绝对应该减轻索引碎片。
你不会有任何特定的顺序做这些,但如果你照顾文件系统碎片,然后重新生成所有的指标,并通过磁盘碎片整理卷上成长多个文件会导致更多的文件系统碎片,你很可能会被打勾。但是它会导致任何性能问题吗?如上所述,这取决于:-D
希望这可以帮助!
归档时间: |
|
查看次数: |
11848 次 |
最近记录: |