• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
fly_zj
博客园    首页    新随笔    联系   管理    订阅  订阅

autoShrink和手动收缩数据文件

 

1:当autoshrink开启时,如果手动收缩数据文件,会提示错误,因为此时有个后台线程正在收缩数据文件,那有没有办法kill掉这个后台线程呢?

 

答案是没有,只能关闭数据库选项autoshrink,然后一直等到,直到该线程自己结束!详细的说明在【这里】

 

2:能不能收缩数据文件?

 

看看收缩数据文件的缺点:详细的介绍在【这里】,现摘录如下:

a:收缩文件时会把该数据文件里的大的页号移到文件的开始处,会产生大量的文件io操作和CPU的使用率

 

c:收缩完毕后会产生大量的碎片,所以要进行索引的重建和重组,消除索引的碎片,结论是不要收缩数据文件!

 

但是在有些情况下是要收缩数据文件的,因为没有其他的选择:

a:监控的需要,导致磁盘空间报警不断,原因是数据文件或初始容量太大,或因业务增长导致数据文件持续增大,而后续删除或迁移了大表数据,能够收缩数据文件,

,该数据库一直有业务在跑,不可能建新的文件组,把现有的数据迁移过去,只能在凌晨时来收缩数据文件,这样对业务影响最小!

 

b:如果是建新的数据文件组,迁移表数据,这样工作量太大,还有涉及到操作的授权,增加了太多的工作量!

 

b:最后收缩时,新建一个JOB,在23:00以后收缩,每次收缩为100M,这样不会产生长时间的页锁,对于日常的操作也不会产生太大影响!

posted @ 2012-08-18 15:31  fly_zj  阅读(640)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3