tempdb是一个临时数据库,保存所有的临时表和临时存储过程,以及其他的临时存储空间的要求。Tempdb数据库由整个系统的所有数据库使用。SQL Server每次启动时,tempdb数据库被重新建立。当用户与SQL Server断开连接时,其临时表和存储过程被自动删除。
可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。
特性:
1、 tempdb中的任何数据在系统重新启动之后都不会持久存在。因为实际上每次SQLServer启动的时候都会重新创建tempdb。这个特性就说明tempdb不需要恢复。
2、 tempdb始终设置为“simple”的恢复模式,当你尝试修改时都会报错。也就是说已提交事务的事务日志记录在每个检查点后都标记为重用。
3、 tempdb也只能有一个filegroup,不能增加更多文件组。
4、 tempdb被用来存储三种类型的对象:用户对象,内部对象、版本存储区。
收缩:
USE [tempdb]
GO
DBCC FREESYSTEMCACHE ('ALL')
GO
DBCC SHRINKFILE (N'tempdev' , 100)--100含义收缩到100M 可自定义
GO
迁移:
USE [tempdb]
--修改mdf文件目录到D盘
Alter database tempdb modify file
(NAME='TEMPDEV',FILENAME='D:\APPDB\TEMPDB.MDF');
GO
--修改ldf文件目录到D盘
Alter database tempdb modify file
(NAME='TEMPLOG',FILENAME='D:\APPDB\TEMPLOG.LDF');