Di Chuyển TempDB Sang Đĩa Khác

Tempdb là một database hệ thống của SQL Server. Nó dùng để chứa các kết quả trung gian khi câu lệnh đang thực hiện, thực hiện sắp xếp (với câu lệnh có ORDER BY), chứa các bảng tạm, biến bảng…

Khi server bận bịu với nhiều yêu cầu truy vấn đồng thời thì kích thước của tempdb có thể trở nên rất lớn. Vị trí mặc định của các file database của tempdb là ở thư mục chứa các file chương trình SQL Server. Bạn nên chuyển chúng sang một ổ đĩa riêng để tránh hiện tượng các file này lớn lên chiếm hết không gian đĩa. Để chuyển các file sang vị trí mới bạn hãy làm theo các bước sau:
Bước 1: Kiểm tra tên file và vị trí hiện thời

USE TempDB
GO
EXEC SP_HELPFILE
GO

kết quả sẽ tương tự như sau:

name     fileid  filename
tempdev  1       C:\Program Files\Microsoft...\tempdb.mdf
templog  2       C:\Program Files\Microsoft...\tempdb.ldf

Tên mặc định cho database file là tempdev và cho log file là templog (đây là tên logic, không phải là tên file trên đĩa). Ghi lại thư mục hiện tại cho hai file này.
Bước 2: Chuyển các file này sang thư mục mới

USE master
GO
ALTER DATABASE tempdb MODIFY FILE
(NAME = tempdev, FILENAME = 'd:\data\tempdb.mdf')
GO
ALTER DATABASE tempdb MODIFY FILE
(NAME = templog, FILENAME = 'd:\log\templog.ldf')
GO

Bạn có thể chạy lại thủ tục sp_helpfile ở bước 1 để kiểm tra xem các file đã có vị trí mới.

Bước 3: Restart lại SQL Server, các file mới sẽ được tạo và sử dụng. Trở lại thư mục ở bước 1 và xóa hai file ở đó đi. Vì mỗi lần SQL Server khởi động nó sẽ tạo lại tempdb, nên bạn không cần bận tâm copy hai file từ thư mục cũ sang vị trí mới, chỉ việc xóa chúng đi để giải phóng chỗ.