zoukankan      html  css  js  c++  java
  • SQL Server如何删除多余tempDB文件

      某时,创建了多个tempDB文件,已经超过了服务器核心数,现象删除tempDB文件,使其保持与CPU核心数相同。但是在删除的时候,发现无法删除,报出错误:无法删除文件“tempdev3”,因为它不能为空(Microsoft SQL Server,错误:5042)

      

      此时,使用脚本查看数据和日志文件使用情况:

    SELECT DB_NAME() AS DbName,
    name AS FileName,
    size/128.0 AS CurrentSizeMB,
    size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB
    FROM sys.database_files;
    

       

      可以看到tempdev3这个文件已经被占用了一部分空间,在实际生产中,可能每个文件都会被占用,这里只做实验用。

      面对这种情况,就需要对tempdb中tempdev3这个文件进行收缩,在收缩前,需要确保此文件里不会有临时表等临时文件,因此需要将这些全部删除之后再进行收缩,收缩脚本:

    USE tempdb
    GO
    DBCC SHRINKFILE (tempdev3, EMPTYFILE); -- to empty "tempdev3" data file
    GO
    

       收缩完毕之后,将该文件删除,脚本如下:

    ALTER DATABASE tempdb
    REMOVE FILE tempdev3; --to delete "tempdev3" data file
    GO
    

       以上就完全删除了tempdb中多余的文件。

  • 相关阅读:
    汇编语言实验4
    汇编语言实验3
    汇编语言实验2
    汇编语言实验1
    汇编语言学习心得
    Java 之不小心修改对象值
    实验九 根据材料编程
    实验5 编写、调试具有多个段的程序
    实验四 [bx]和loop的使用
    ASCII(侵权删)
  • 原文地址:https://www.cnblogs.com/zx3212/p/5707930.html
Copyright © 2011-2022 走看看