火曜日, 4月 04, 2023

SQL Server の tempdb のファイルを削除

 サーバマシンのサイズ変更等で、CPUのコア数が減り、tempdb のファイルも減らす必要が生じた場合の作業例。(SQL Server の再起動なしにはできなかった。)

 Management Studio でつぎのSQL文を実行する。

USE [master];
GO
ALTER DATABASE tempdb MODIFY FILE
(NAME = temp5, SIZE = 1KB, FILEGROWTH = 0 );
GO
ALTER DATABASE tempdb MODIFY FILE
(NAME = temp6, SIZE = 1KB, FILEGROWTH = 0 );
GO
ALTER DATABASE tempdb MODIFY FILE
(NAME = temp7, SIZE = 1KB, FILEGROWTH = 0 );
GO
ALTER DATABASE tempdb MODIFY FILE
(NAME = temp8, SIZE = 1KB, FILEGROWTH = 0 );
GO

 この後、SQL Server のサービスを再起動する。
 さらに、Management Studio でつぎのSQL文を実行する。

USE [tempdb];
GO
DBCC SHRINKFILE (N'temp5' , EMPTYFILE);
GO
ALTER DATABASE [tempdb] REMOVE FILE [temp5];
GO
DBCC SHRINKFILE (N'temp6' , EMPTYFILE);
GO
ALTER DATABASE [tempdb] REMOVE FILE [temp6];
GO
DBCC SHRINKFILE (N'temp7' , EMPTYFILE);
GO
ALTER DATABASE [tempdb] REMOVE FILE [temp7];
GO
DBCC SHRINKFILE (N'temp8' , EMPTYFILE);
GO
ALTER DATABASE [tempdb] REMOVE FILE [temp8];
GO

以上。