[SQL Server] tempdb データベースの移動方法

inno
2014-07-30 15:01 4673 0
MS-SQL / SQL Server / システムデータベース
tempdb データベースの移動方法

tempdbデータベースは性能のため別途のディスクに構築するのがいいのはお分かりでしょうか?
それではtempデータベースファイルの変更する方法についてご説明します。

まず、下記のSQLを実行してtempdbデータベースの情報を取得します。

SELECT database_id,name,physical_name 
FROM sys.master_files
WHERE database_id=2

実行結果 - 皆さんとパスが違う場合があります。



SQL SERVERをインストールする時に変更しなかったら上記のようなパスになっていると思います。
それでは C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\ から
D:\Data\ に変更してみましょう。

ALTER DATABASE tempdb
MODIFY FILE (name=tempdev,filename="D:\Data\tempdb.mdf")
GO

ALTER DATABASE tempdb
MODIFY FILE (name=templog,filename="D:\Data\templog.ldf")
GO

上記のSQLを実行してパスを変更します。
正常に実行されたら下記のような結果が出ます。

システム カタログのファイル "tempdev" が変更されました。次回データベースを起動するときに、新しいパスが使用されます。
システム カタログのファイル "templog" が変更されました。次回データベースを起動するときに、新しいパスが使用されます。

結果には「次回データベースを起動するときに、新しいパスが使用されます。」と書かれています。
そうです!!
まだ既存のパスにtempdbのデータベースファイルが保存されています。
SQL SERVERのサービスを再起動するかサーバーを再起動すれば変更されたパスにファイルが移動されます。
一応再度tempdbデータベースの情報を確認してみましょう。

SELECT database_id,name,physical_name 
FROM sys.master_files
WHERE database_id=2

実行結果には下記のようにパスが変更されています。



SQL SERVERのサービスもしくはサーバーを再起動後物理的ファイルが移動されているか確認しましょう~

tempdbには一時データ及び一時テーブルが保存されます。
意外とサービスに影響がある重要なテーブルになります。

もう一つのTIP!!!
tempdbのデータベースファイルが現在は1つになっていますが、
手動でCPUのコア数に合わせてデータベースファイルを追加した方が性能的にいいですよ~~

コメント