tempDB减肥

来源:互联网 发布:山大网络教育英语试题 编辑:程序博客网 时间:2024/04/19 11:49


tempdb 系统数据库是一个全局资源,可供连接到 SQL Server 实例的所有用户使用,并可用于保存下列各项:

  • 显式创建的临时用户对象,例如全局或局部临时表、临时存储过程、表变量或游标。

  • SQL Server 数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。

  • 由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。

  • 由数据修改事务为实现联机索引操作、多个活动的结果集 (MARS) 以及 AFTER 触发器等功能而生成的行版本。

tempdb 中的操作是最小日志记录操作。 这将使事务产生回滚。 每次启动 SQL Server 时都会重新创建 tempdb,从而在系统启动时总是保持一个干净的数据库副本。 在断开联接时会自动删除临时表和存储过程,并且在系统关闭后没有活动连接。 因此 tempdb 中不会有什么内容从一个 SQL Server 会话保存到另一个会话。 不允许对 tempdb 进行备份和还原操作。

tempDB是在sqlserver每次重新启动的时候重新初始化大小,但是随着业务系统的上线,

tempdb会变得越来越大,服务器上面没有足够的空间存储,这时候我们就需要对tempDB进行收缩,而且不能重新启动环境。

我们可以通过以下方式对tempDB进行减肥。

DBCC FREEPROCCACHE --这个是关键--删除计划缓存中的所有元素,--通过指定计划句柄或 SQL 句柄从计划缓存中删除特定计划,--或者删除与指定资源池相关联的所有缓存条目。GO USE [tempdb] GO DBCC SHRINKFILE(tempdev , 5000)--5000MB GO
原创粉丝点击