Найти тему
Maxus Notes

Как в Microsoft SQL Server перенести tempdb на другой диск

Оглавление

Введение

Microsoft SQL Server использует tempdb при выполнении запросов и является служебной базой и хранит в себе временные объекты . Как правило база tempdb всегда сильно нагружена и её ускорение даст нам небольшой прирост в производительности. Одна из рекомендаций — перенос базы tempdb на другой диск. Лучше всего переносить на SSD диск.

Расположение файлов базы tempdb по умолчанию

Во время установки MS SQL Server будет предложена Настройка компонента Database Engine, где в вкладке Каталоги данных мы можем выбрать каталог хранения базы данных tempdb. По умолчанию база tempdb находиться в следующем каталоге:

C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA

Выполняем запрос на перенос базы tempdb на другой диск

Поскольку база MS SQL Server постоянно использует базу данных, базу tempdb не получится переместить сделав просто отсоединение и присоединение базы данных. Для перемещения файлов базы tempdb нам необходимо создать запрос и выполнить скрипт под фото, предварительно подставив в него свои пути нового расположения перемещаемой базы.

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

После выполнения запроса вам потребуется Перезапустить Microsoft SQL Server.

Также помимо файлов tempdb.mdf и templog.ldf могут быть ещё несколько штук типа tempdb_mssql_1.ndf. Их также необходимо перенести в новый каталог:

ALTER DATABASE tempdb MODIFY FILE ( NAME = temp2, FILENAME = 'd:\temp\tempdb_mssql_1.ndf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp3, FILENAME = 'd:\temp\tempdb_mssql_2.ndf' )

После перезапуска можно проверить новые пути к файлам

SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');