none
数据库压缩使用DBCC shrinkfile很慢,请问有啥好的解决办法吗?谢谢! RRS feed

  • 问题

  • 数据库版本是2008+sp1,不压缩的话,只是没把磁盘空间释放给操作系统吧,数据库还是可以重复使用那些空间的吧?
    • 已编辑 Tim-2009 2018年6月19日 2:31 补充内容
    2018年6月19日 2:05

答案

  • Hi Tim-2009,

    感谢您的提问。

    >>>数据库版本是2008+sp1,不压缩的话,只是没把磁盘空间释放给操作系统吧,数据库还是可以重复使用那些空间的吧?
    不压缩的话,数据库是不能重复使用那些空间的,必须shrink后,才能重复使用。

    >>>数据库压缩使用DBCC shrinkfile很慢,请问有啥好的解决办法吗?谢谢
    关于好的解决办法,可以参考下面的博客:
    https://www.cnblogs.com/Joe-T/archive/2011/12/22/2298051.html

    >>>为什么DBCC shrinkfile很慢, 请参考下面的英文博客:
    https://www.sqlskills.com/blogs/paul/why-lob-data-makes-shrink-run-slooooowly-t-sql-tuesday-006/


    Best Regards
    Willson Yuan
    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    • 已建议为答案 alexander fun 2018年6月19日 11:07
    • 已标记为答案 Tim-2009 2018年6月21日 12:19
    2018年6月19日 7:45
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。

    • 已建议为答案 alexander fun 2018年6月19日 11:07
    • 已标记为答案 Tim-2009 2018年6月21日 12:20
    2018年6月19日 8:27
    版主
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。


    请问不用shrink 数据文件,用shrinkdatabase?
    Even worse, it'll shrink all filesin the db.
    • 已标记为答案 Tim-2009 2018年6月21日 12:20
    2018年6月19日 15:10

全部回复

  • Hi Tim-2009,

    感谢您的提问。

    >>>数据库版本是2008+sp1,不压缩的话,只是没把磁盘空间释放给操作系统吧,数据库还是可以重复使用那些空间的吧?
    不压缩的话,数据库是不能重复使用那些空间的,必须shrink后,才能重复使用。

    >>>数据库压缩使用DBCC shrinkfile很慢,请问有啥好的解决办法吗?谢谢
    关于好的解决办法,可以参考下面的博客:
    https://www.cnblogs.com/Joe-T/archive/2011/12/22/2298051.html

    >>>为什么DBCC shrinkfile很慢, 请参考下面的英文博客:
    https://www.sqlskills.com/blogs/paul/why-lob-data-makes-shrink-run-slooooowly-t-sql-tuesday-006/


    Best Regards
    Willson Yuan
    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    • 已建议为答案 alexander fun 2018年6月19日 11:07
    • 已标记为答案 Tim-2009 2018年6月21日 12:19
    2018年6月19日 7:45
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。

    • 已建议为答案 alexander fun 2018年6月19日 11:07
    • 已标记为答案 Tim-2009 2018年6月21日 12:20
    2018年6月19日 8:27
    版主
  • Hi 怡红公子,

    >>>不shrink file,当前数据库是可以使用这些剩余空间的。
    谢谢您的指正,你说的是对的,可能我们的理解稍有不同。我的理解是,不压缩的话,数据库所占的空间在操作系统上显示只可能是增加,不会释放出空间给其它与应用程序,包括其它数据库。由于每个数据库有自己的独立空间,每个数据库只能够使用自己所占用的空间, 因此对于该数据库的空间,必须shrink后才能被其它应用程序和数据库所使用。


    Best Regards
    Willson Yuan
    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com

    2018年6月19日 9:36
  • 谢谢两位,另外,想问一下新版本的SQLSERVER在收缩数据库方面有什么改进啊?有个客户提出想用MYSQL替换SQLSERVER,主要目的是MYSQL删除表后直接释放磁盘空间。
    2018年6月19日 12:04
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。


    请问不用shrink 数据文件,用shrinkdatabase?
    2018年6月19日 12:10
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。


    请问不用shrink 数据文件,用shrinkdatabase?
    Even worse, it'll shrink all filesin the db.
    • 已标记为答案 Tim-2009 2018年6月21日 12:20
    2018年6月19日 15:10
  • 是的,您可以实际看下(任务-压缩数据库 Task-Shrink)用了多少空间存储数据或日志,还剩余多少空间。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年6月20日 0:24
  • 看应用场景,如果是比较简单的OLTP,MySQL OK

    若是较综合的OLTP、OLAP应用,还是忘了MySQL

    当然,也有另一种理解,就是将OLAP分享,部署DW承载OLAP,这得从业务上仔细分析、权衡了


    SQL Server 2016 ~ 2000 性能优化、方案设计 QQ:315054403 田园嘉兴

    2018年6月20日 0:53
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。


    请问不用shrink 数据文件,用shrinkdatabase?

    Even worse, it'll shrink all filesin the db.

    没看懂,请问是指shrinkdatabase更差?
    2018年6月20日 1:35
  • 有个客户提出想用MYSQL替换SQLSERVER,主要目的是MYSQL删除表后直接释放磁盘空间。

    MYSQL是命令行方式操作的,对Linux系统有较好的支持,

    SQLServer是图形界面操作的,对Windows系统有较好的支持,

    用MySQL替换SQLServer,从操作系统来看是不划算的。

    2018年6月20日 2:46
  • 不是吧,你不该这么外行的啊,你又不是新人。

    不shrink file,当前数据库是可以使用这些剩余空间的。注意数据/日志/文件组是不能互相使用剩余空间的。

    一般不建议shrink 数据文件,原因不细说了,通常会影响性能,要解决很麻烦。


    想不想时已是想,不如不想都不想。


    请问不用shrink 数据文件,用shrinkdatabase?

    Even worse, it'll shrink all filesin the db.


    没看懂,请问是指shrinkdatabase更差?
    That's correct.
    2018年6月20日 12:12