none
sqlserver2005如何在不重启实例的情况下清空临时库 RRS feed

  • 问题

  • 我们有一个在线网站的数据库往其他数据库写数据,后来发现临时库越来越大,现在我们想把写数据的job停掉,先把临时库清空一下,再继续,请问有什么办法可以在不重启实例的情况下清空临时库
    2009年4月30日 8:27

答案

  • 如果想要收缩空间,可以使用
    DBCC SHRINKDATABASE

    dbc shrinkfile命令


    但这回影响性能,
    当tempdb再次扩张时也会影响性能。


    sqlserver会自动清除tempdb里不用的内容, 但正在被使用时(被其他数据库或session)是无法被清空的
    SQL SERVER Engine Test
    2009年4月30日 9:05
    版主
  • The correct way is placing tempdb on its own disk with sufficient space.
    2009年4月30日 14:20
  • 即使清空一样还是会涨回来,而且数据库自增对于资源的消耗也不小,自然已经增上去了何必又让他缩回来呢?除非你的磁盘没有空间了。另外SQL会自行管理tempdb,不需要你做什么操作。
    dbcc shrinkdatabase可以收缩数据库释放空间给OS,通常情况写数据也不会是tempdb增加,还是要看看job里面运行的什么东西。

    2009年5月4日 8:58

全部回复

  • 如果想要收缩空间,可以使用
    DBCC SHRINKDATABASE

    dbc shrinkfile命令


    但这回影响性能,
    当tempdb再次扩张时也会影响性能。


    sqlserver会自动清除tempdb里不用的内容, 但正在被使用时(被其他数据库或session)是无法被清空的
    SQL SERVER Engine Test
    2009年4月30日 9:05
    版主
  • The correct way is placing tempdb on its own disk with sufficient space.
    2009年4月30日 14:20
  • 即使清空一样还是会涨回来,而且数据库自增对于资源的消耗也不小,自然已经增上去了何必又让他缩回来呢?除非你的磁盘没有空间了。另外SQL会自行管理tempdb,不需要你做什么操作。
    dbcc shrinkdatabase可以收缩数据库释放空间给OS,通常情况写数据也不会是tempdb增加,还是要看看job里面运行的什么东西。

    2009年5月4日 8:58