您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页频繁执行DBCCSHRINKDATABASE的危害

频繁执行DBCCSHRINKDATABASE的危害

来源:爱go旅游网
SHRINKDATABASE收缩原理

  要搞明⽩为什么不要轻易使⽤DBCC SHRINKDATABASE,⾸先要⾼明⽩DBCC SHRINKDATABASE的收缩原理,在数据⽂件并不是所有的空间都被使⽤,⽽是有部分未使⽤空间:包括已删除的数据、⽂件⾃动增长所未使⽤的空间及其⼀些不能被使⽤的碎⽚空间,这些未使⽤空间可通过sp_sapceused得到。执⾏DBCC SHRINKDATABASE后将分配页从⽂件末尾移动到⽂件前部的未分配页,然后进⾏压缩;只有执⾏了TRUNCATEONLYA,才会将空间释放给操作系统。

  了解DBCC SHRINKDATABASE的收缩原理我们再来看⼏个问题:   1.DBCC SHRINKDATABASE 收缩后能起到整理数据库⽂件碎⽚?

  不能!DBCC SHRINKDATABASE仅仅是将空间给收缩了,并没有做善后处理,数据库⽂件的碎⽚只能是更多了。  2.DBCC SHRINKDATABASE收缩后数据库的速度会快吗?

不能!DBCC SHRINKDATABASE并没有在收缩后执⾏整理索引的步骤,因此,索引的碎⽚会更多,执⾏速度应该会慢⼀些。

  3.为什么我每隔⼏天就整理索引,但索引的碎⽚仍然产⽣的很快?

参考第⼆条,估计是你在执⾏索引整理后,⼜执⾏了DBCC SHRINKDATABASE。

  什么时候使⽤DBCC SHRINKDATABASE?

只有产⽣许多未使⽤空间的操作(如截断表或删除表操作)后,执⾏收缩操作最有效,产⽣碎⽚较少。

总结:

  DBCC SHRINKDATABASE并不是不能使⽤,⽽是要慎重使⽤,尤其不要频繁使⽤,因为它会增加数据库碎⽚的程度。DBCC SHRINKDATABASE的详细⽤法请参考MSDN 备注:

  A: TRUNCATEONLY 将⽂件末尾的全部可⽤空间回收给操作系统。但是,TRUNCATEONLY 不在⽂件内执⾏任何页移动。指定的⽂件只被收缩到最近分配的区。如果随 TRUNCATEONLY ⼀起指定,则忽略 target_percent。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务