Dans la plupart des petites structures disposant de peu de moyens, la base tempdb et les bases systèmes sont bien souvent placées sur le disque système et dans le pire des cas les bases utilisateurs le sont également. Afin de gagner en performances au niveau des entrées/sorties sur les disques, il vaut mieux déplacer les bases utilisateurs sur un RAID 10 (par exemple) indépendant et la base tempdb sur un RAID 1 indépendant.
Déplacer ces bases utilisateurs sur un autre disque ne pose pas de problème particulier, il suffit de détacher les bases, de les déplacer puis de les rattacher.
Déplacer la base tempdb ne pose pas de très gros problème non plus mais il faudra prévoir un redémarrage du serveur SQL, ce qui peut se réveler un peu délicat dans le cas de serveurs utilisés en continu.
Dans Microsoft SQL Server Management Studio, ouvrez une nouvelle page de requête sur le serveur dont vous voulez déplacer la base tempdb :
USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'E:\tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'E:\templog.ldf'); GO
Remplacez bien sûr le E:\ par l’emplacement où vous souhaitez déplacer la base. Vérifiez bien que vous avez donné les droits en lecture/écriture/modification à l’utilisateur qui exécute SQLServer.
Une fois cette requête exécutée il faudra redémarrer le serveur SQLServer. Vous pouvez vérifier l’emplacement des fichiers correspondant à la base tempdb au moyen de la requête suivante :
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('tempdb');