www.381818.com,白小姐中特网,118kj手机看开奖,老树林994996马会资料,济民救世网877377,256699.com,www.445222.com

SQL Server碎片知多少之:物理磁盘碎片与数据库的区别香港王中王

  • 时间:2019-11-09 10:26  来源:未知   作者:admin   点击:

  会今朝·忆上合 青岛扬帆起航览九州金财神论坛,每次提到“碎片”,我们自然而然的就想到了我们电脑中的那个磁盘碎片。在数据库中,我们提到碎片,很多的时候我们就开始犯糊涂了,因为我们曾经也在某些地方听说过“索引碎片”这个东西。最后,我们就开始认为:可能索引“碎片”中的那个“碎片和”和“磁盘碎片”中的那个“碎片”是差不多的,甚至是相同的。 有朋友可能会从数据库的存储机制去分析,但是最后可能分析清晰了索引碎片是怎么样回事,至于它和磁盘碎片是不是一样,就不得而知了。 其实上面说的那些问题,也是我们团队在为客户解决问题的时候遇到的曾经遇到的问题,而且也做了不少傻事情,最后才慢慢的明白到底是怎么回事。 当然,既然写了这篇文章,那么就说明:它们不是一样的,不是所有的“碎片”都是一样的,就好比不是所有长长头发的人都是女人一样。 那我们就来看看它们之前的区别吧。 其实物理磁盘碎片是Windows在物理磁盘上面工作而产生的一个副作用。我们也知道,清理磁盘碎片可以使得我们的计算机运行的更快,而且Windows也是内置了一些磁盘碎片清理的工具。 磁盘碎片之所以使得我们计算机的性能下降,主要是因为它增加了磁头读取数据的延迟时间。我这里借用CareySon的一个图片来说明一下: 我们知道,Windows会把文件保存到磁盘的空闲空间中,如果寻找到的空间不足以存放所有 的文件数据,那么文件就分段会被保存到磁盘的多个地方,我们暂且称这些分段为数据块,或者理解为磁盘中的那个“扇区”,每个扇区都是有大小的。那么,当在读取数据的时候,磁盘的磁头就会定位到磁盘中的各个不同的扇区。 一般而言,磁头移动数据块的时间是读取数据块中数据时间的3-4倍。或者说,寻道时间一般是数据读取时间的3-4倍。 如果此时,在计算机的的磁盘中存在碎片(至于碎片如何产生,我这里也就不花时间讲述,重点不在这里,而且也不难),那么数据的读取操作就发生了变化。原本数据读取时的操作是“寻道-读取数据-读取数据…”,因为没有碎片,香港王中王中特网数据所在的扇区是连续的。如果有了碎片,那么读取的操作就变为了“寻道-读取-寻道-读取-寻道-读取”,很显然,数据的读取就延迟了。我们还是给大家看一个更加形象的图示: 从上图中可以知道,磁盘碎片使得原本只要读取两个扇区的时间从6ms变到了18ms。