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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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语句:使用策略模式优化代码结构