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、先收缩数据文件

1
2
3
4
USE tempdb
GO
DBCC SHRINKFILE (tempdb1, EMPTYFILE);
GO

2、删除数据文件

1
2
3
4
USE [tempdb]
GO
ALTER DATABASE [tempdb]  REMOVE FILE [tempdb1]
GO

 

posted @   佳蓝雨  阅读(1341)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示