zoukankan      html  css  js  c++  java
  • SqlServer 不能收缩 ID 为 %s 的数据库中 ID 为 %s 的文件,因为它正由其他进程收缩或为空。

    SQLServer数据库通常都不建议进行SHRINKFILE操作,因为SHRINKFILE不当会造成一定的性能问题。

    但是当进行了某些操作(例如某个超大的日志类型表转成分区表切换了数据文件),数据库某个文件组中的剩余空间占了整个磁盘的很大一部分,而且磁盘空间已经吃紧的情况下,你也许会考虑收缩一下某个数据文件。

    收缩数据文件时,可以每次收缩一点点(例如每次5GB)来进行。

    然而博主最近对某个数据库进行数据库收缩时碰到了标题所示的困扰。在DBCC SHRINKFILE (db_name , target_size)执行了几次之后。

    DBCC SHRINKFILE (db_name , target_size)

    莫名出现了如下错误:

    不能收缩 ID 为 6 的数据库中 ID 为 1 的文件,因为它正由其他进程收缩或为空。

    据网上的经验,备份之后仍然不变,重启也无效,尝试重建某些表的索引,也无效。

    但博主在尝试将数据库文件增加10MB,然后再次收缩数据库的时候这个错误消失了。

    ALTER DATABASE db_name MODIFY FILE ( NAME = file_name, SIZE = target_size )

    后来从官方社区找到了答案:应该是我在进行DBCC SHRINKFILE的时候正好同时进行了备份操作(定时日志备份)。

    官方给的解决方法就是将要收缩的数据文件增加一点点,哪怕1MB。

  • 相关阅读:
    python协程爬取某网站的老赖数据
    python异步回调顺序?是否加锁?
    go语言循环变量
    使用memory_profiler异常
    安装python性能检测工具line_profiler
    等我!
    pytorch代码跟着写
    Python异常类型总结
    Python项目代码阅读【不断更新】
    夏令营体会
  • 原文地址:https://www.cnblogs.com/wissly/p/15551007.html
Copyright © 2011-2022 走看看