tencent cloud

云数据库 SQL Server

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
产品架构
产品优势
应用场景
地域和可用区
大版本生命周期说明
功能概览及差异
实例类型
实例规格
存储类型
常用概念
网络环境
许可声明
购买指南
计费概述
产品价格
购买方式
续费说明
欠费说明
退费说明
按量转包年包月
调整实例费用说明
本地备份空间收费说明
跨地域备份收费说明
查看账单明细
快速入门
创建 SQL Server 实例
连接 SQL Server 实例
管理 SQL Server 实例
操作指南
约束与限制
使用规范与建议
维护管理实例
调整实例配置
只读实例
网络管理
账号管理
数据库管理
数据安全
参数配置
监控与告警
备份与回档
日志管理
发布订阅
数据集成服务(SSIS)
数据迁移(新版)
数据迁移(旧版)
数据同步(DTS)
实践教程
云数据库 SQL Server 定期维护方法
云数据库 SQL Server 慢 SQL 优化
如何更好地使用 Tempdb
跨账号备份恢复
为云数据库 SQL Server 创建 VPC
金蝶K/3 WISE 接入云数据库 SQL Server
账号权限和权限控制
变更数据捕获功能的开启和关闭
收缩数据库
API 文档
History
Introduction
API Category
Making API Requests
Sales and fee related APIs
Instance Management related APIs
Operation and maintenance management related APIs
Network management related APIs
Account management related APIs
Database management related APIs
Security group management related APIs
Data security encryption related APIs
Parameter configuration related APIs
Extended Event related APIs
Log management related APIs
Read only instance management related APIs
Publish and subscribe related APIs
Backup related APIs
Rollback related APIs
Data migration (cold standby migration) related APIs
SQL Server Integration Services (SSIS) related APIs
Data migration (DTS old version) related APIs
Data Types
Error Codes
常见问题
常见问题概览
选购咨询
计费与选购
连接与网络
账号与权限
备份与回档
数据迁移
发布订阅
只读实例
版本架构升级
磁盘扩缩容与规格升降级
监控与告警
日志相关
参数修改
功能特性相关
性能空间内存相关
相关协议
服务等级协议
服务条款
性能测试
性能测试报告
词汇表
联系我们
文档云数据库 SQL Server实践教程如何更好地使用 Tempdb

如何更好地使用 Tempdb

PDF
聚焦模式
字号
最后更新时间: 2025-12-23 10:47:01
Tempdb 是用于存储临时数据的系统库,在每次 SQL Server 进程启动时会新加载生成。因为比较灵活,所以该系统库在业务上的使用场景比较多。本文为您介绍在云数据库 SQL Server 中 Tempdb 系统库的使用及其优化建议。

Tempdb 空间占用问题分析

由于 Tempdb 会临时的物化临时数据(当 SQL Server 执行某些操作时,Tempdb 会被用来存储中间结果或临时数据),所以在把数据写入临时表的时候,Tempdb 的空间也会根据数据的大小来增长。正常情况下,当少量数据写入临时表并处理完成后,提交(Commit)事务后,Tempdb 会自动释放这部分空间,后续事务在使用临时表时,就可以复用该空间。但是有时候会遇到 Tempdb 占用比较大的空间并且无法收缩的场景,此时,我们该如何处理呢?
一、合理使用,从源头规避空间膨胀过大问题
避免在一个事务中大量的将数据插入临时表,造成 Tempdb 膨胀过大。
在事务中使用完临时表后,及时提交事务,避免 Tempdb 持续膨胀。
二、收缩文件,通过重启或清理缓存释放膨胀空间
如果 Tempdb 文件已经膨胀过大,则需要收缩,而在实例正在运行的场景下,很难收缩掉数据文件,此时建议的方案是重启 SQL Server 进程,以重新加载生成新的 Tempdb。
如果因业务情况不方便直接重启 SQL Server 进程,可以考虑先清理实例缓存,然后再进行收缩的方式,这样可以在不重启的情况下收缩掉数据文件。
注意:
实例缓存被清理后可能会出现一段时间内部分 SQL 性能下降的情况。

Tempdb 性能优化建议

在 Tempdb 使用频繁的系统中,其库的大小和物理位置可能会带来部分影响,例如,若为 Tempdb 定义的大小过小,则每次重启 SQL Server 实例时,系统需额外消耗处理资源,以完成 Tempdb 自动扩展至支撑当前工作负载所需的大小。
针对 Tempdb 的优化建议如下:
将文件自动增长的大小设置为合理大小,以避免在数据写入时频繁的触发文件增长,从而影响性能。建议设置文件自动增长在200MB - 500MB 之间。
根据需要创建多个文件使磁盘带宽最大化,可以有效的减少 Tempdb 存储争用。建议根据实例的 CPU 数量来增加 Tempdb 数据文件,超过8个 CPU 的实例,建议一共创建8个 Tempdb 数据文件。
每个 Tempdb 数据文件建议设置为相同大小,文件自动增长大小也建议设置为相同大小,可以优化比例填充的性能。

增加 Tempdb 数据文件的方法

通过 SSMS 连接实例后增加 Tempdb 数据文件

1. 连接 SSMS。
2. 点开 Tempdb 数据库属性。
3. 单击 Files,然后单击 ADD 即可增加 Tempdb,最后单击 OK


使用 SQL 命令增加 Tempdb 数据文件

您也可以直接通过 SQL 命令来增加 Tempdb 数据文件,具体命令参考如下:
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev2', FILENAME = N'F:\\gamedb\\58047\\tempdev2.ndf' , SIZE = 3382272KB , FILEGROWTH = 204800KB )
GO
SQL 命令参数说明
参数
说明
ALTER DATABASE [tempdb]
表示操作的数据库是 Tempdb。
ADD FILE (...)
指定要向该数据库中添加一个新的数据文件。
SIZE = 3382272KB
文件的初始大小,这里表示约3.22GB。
FILEGROWTH = 204800KB
文件的自动增长大小,这里表示当文件空间不足时,会自动按约199.9MB的增量扩展。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈