34-SQLServer中Tempdb数据库的优化

一、总结

1、为什么要优化Tempdb?

  tempdb数据库中承载SQLServer实例下所有数据库的大量临时操作,比如排序、联合、行版本控制、在线重建或重组织索引、创建和使用临时表等等。所以tempdb的性能直接关系到数据库的整体性能

2、如何优化Tempdb?

  * 创建多个tempdb文件,以避免在创建或删除临时表时产生资源争用;

  * 将tempdb放在性能较好的磁盘上;

3、Tempdb数据文件个数的选择?

  * tempdb数据文件的个数应该等于CPU物理核数的约数(不包括超线程);

  * 不要超过16个;

  * 设置的初始大小和自增长必须相同;

    eg:32核的服务器可以创建8个或16个tempdb数据文件。

4、新增Tempdb数据文件后,需重启SQLServer服务才能生效。

5、操作改变tempdb数据库数据文件的存储路径时,最好使用administrator用户或具隶属于administrators组的用户启动数据库,不要使用Local System、Local Service、Network Service来启动数据库,因为可能会遇到数据库启动失败的问题。

 

二、修改tempdb数据库的存储路径

1、目的:将数据库文件放到性能较好的磁盘

2、操作步骤

(1)停止数据库服务

 (2)把tempdb的文件复制到指定的目录

注:复制过去就行,因为即便你剪切过去,重启数据库服务,还会在原来的目录自动生成tempdb的文件,因为在数据库存储的信息没有变

 

 (3)启动数据库服务

 注:这个时候启动数据库后,查看tempdb的数据文件,还是原来的路径,所以需要执行下面的步骤

 (4)执行下面的modify脚本

alter database tempdb modify file( name = tempdev,filename ='D:\sqldata\tempdb\tempdb.mdf');

alter database tempdb modify file( name = templog,filename ='D:\sqldata\tempdb\templog.ldf');

 注:执行完上面的脚本,tempdb的路径就会变了,但是还是得重启一下数据库 

(5)再次重启数据库

 三、添加tempdb的数据库文件

1、添加数据文件

注:这里以增长至8个数据文件为例,初始大小都是200MB,自动增长量为200MB

 2、重启数据库服务

 

 四、删除tempdb的数据文件

1、先收缩数据文件

USE tempdb
GO
DBCC SHRINKFILE (tempdb1, EMPTYFILE); 
GO

2、删除数据文件

USE [tempdb]
GO
ALTER DATABASE [tempdb]  REMOVE FILE [tempdb1]
GO

 

posted @ 2020-06-11 14:07  佳蓝雨  阅读(1228)  评论(0编辑  收藏  举报