问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQLERVER的tempdb库突然暴增(已经暴增了),怎么排查暴增的原因?

发布网友 发布时间:2022-04-22 14:41

我来回答

1个回答

热心网友 时间:2023-11-09 10:01

Tempdb 信息
tempdb 是一个临时工作区。除其他用途外,SQL Server 还将 tempdb 用于:
• 显式创建的临时表的存储。
• 保存在查询处理和排序过程中创建的中间结果的工作表。
• 具体化的静态光标。
SQL Server 在 tempdb 事务日志中记录的信息只足够用于回滚事务,而不足以用于在数据库故障恢复过程中重新执行事务。这一特点提高了 tempdb 中 INSERT 语句的性能。另外,由于每次重新启动 SQL Server 时都会重新创建 tempdb,无需记录用于重新执行任何事务的信息。因此,没有任何要前滚或回滚的事务。当 SQL Server 启动时,通过使用 model 数据库的副本重新创建 tempdb,并将其重置为上次配置的大小。

默认情况下,tempdb 数据库配置为根据需要自动增长;因此,此数据库可能最终增长到大于所需的大小。简单地重新启动 SQL Server 会将 tempdb 的大小重置为上次配置的大小。配置的大小是用文件大小更改操作(如带有 MODIFY FILE 选项的 ALTER DATABASE 或者 DBCC SHRINKFILE 语句)设置的上次显式大小。本文说明您可以用来将 tempdb 收缩到小于其配置的大小的三种方法。

收缩 Tempdb 的方法 1
此方法要求您重新启动 SQL Server。

1. 停止 SQL Server。打开命令提示符,然后键入以下命令启动 SQL Server:

sqlservr -c -f

-c 和 -f 参数使 SQL Server 以最小配置模式启动,让数据文件的 tempdb 大小为 1 MB,日志文件的 tempdb 为 0.5 MB。

注意:如果使用 SQL Server 命名实例,必须切换到适当的文件夹 (Program Files/Microsoft SQL Server/MSSQL$instance name/Binn),并使用 -s 开关 (-s%instance_name%)。
2. 用查询分析器连接到 SQL Server,然后运行下列 Transact-SQL 命令: ALTER DATABASE tempdb MODIFY FILE
(NAME = 'tempdev', SIZE = target_size_in_MB)
--Desired target size for the data file

ALTER DATABASE tempdb MODIFY FILE
(NAME = 'templog', SIZE = target_size_in_MB)
--Desired target size for the log file

3. 通过在命令提示符窗口中按 Ctrl-C 停止 SQL Server,将 SQL Server 作为服务重新启动,然后验证 Tempdb.mdf 和 Templog.ldf 文件的大小。
此方法的局限是它只能对默认的 tempdb 逻辑文件 tempdev 和 templog 进行操作。如果将其他文件添加到了 tempdb,您可以在将 SQL Server 作为服务重新启动后收缩它们。在启动过程中将重新创建所有 tempdb 文件;因此,它们是空的并可删除。要删除 tempdb 中的其他文件,请使用带有 REMOVE FILE 选项的 ALTER DATABASE 命令。

收缩 Tempdb 的方法 2
使用 DBCC SHRINKDATABASE 命令将 tempdb 数据库作为整体收缩。DBCC SHRINKDATABASE 接收参数 target_percent,该参数是数据库收缩后数据库文件中剩余可用空间的所需百分比。如果使用 DBCC SHRINKDATABASE,可能必须重新启动 SQL Server。

重要说明:如果运行 DBCC SHRINKDATABASE,则 tempdb 数据库不能正在发生其他活动。要确保在运行 DBCC SHRINKDATABASE 时其他进程无法使用tempdb,必须以单用户模式启动 SQL Server。有关更多信息,请参考本文的在使用 Tempdb 时执行 DBCC SHRINKDATABASE 或 DBCCSHRINKFILE 的结果 一节。
1. 通过使用 sp_spaceused 存储过程确定 tempdb 中当前使用的空间。然后,计算剩余可用空间的百分比,它将用作 DBCC SHRINKDATABASE 的参数;该计算是基于所需数据库大小进行的。

注意:在某些情况下,您可能必须执行 sp_spaceused @updateusage=true 来重新计算使用的空间和获得更新的报告。有关 sp_spaceused 存储过程的更多信息,请参考 SQL Server 联机丛书。

请考虑以下示例:
假定 tempdb 有两个文件:主数据文件 (Tempdb.mdf) 和日志文件 (Tempdb.ldf),其大小分别为 100 MB 和 30 MB。假定 sp_spaceused 报告主数据文件包含 60 MB 的数据。还假定您要将主数据文件收缩到 80 MB。计算收缩后剩余可用空间的所需百分比,即 80 MB - 60 MB = 20 MB。现在,用 20 MB 除以 80 MB = 25%,这就是您的 target_percent。事务日志文件将据此进行收缩,从而在数据库收缩后剩下 25% 即 20 MB 的可用空间。

2. 用查询分析器连接到 SQL Server,然后运行下列 Transact-SQL 命令: dbcc shrinkdatabase (tempdb, 'target percent')
-- This command shrinks the tempdb database as a whole

对 tempdb 数据库使用 DBCC SHRINKDATABASE 命令具有局限性。数据文件和日志文件的目标大小不能小于创建数据库时指定的大小,也不能小于用文件大小更改操作(如带有 MODIFY FILE 选项的 ALTER DATABASE 命令或 DBCC SHRINKFILE 命令)显式设置的上次大小。DBCC SHRINKDATABASE 的另一个*是target_percentage 参数的计算和它对当前使用的空间的依赖。追问首先,非常感谢你的回答,但是我是想要怎么快速找出暴增的原因

SQLERVER的tempdb库突然暴增(已经暴增了),怎么排查暴增的原因?

使用 DBCC SHRINKDATABASE 命令将 tempdb 数据库作为整体收缩。DBCC SHRINKDATABASE 接收参数 target_percent,该参数是数据库收缩后数据库文件中剩余可用空间的所需百分比。如果使用 DBCC SHRINKDATABASE,可能必须重新启动 SQL Server。重要说明:如果运行 DBCC SHRINKDATABASE,则 tempdb 数据库不能正在发生...

体重忽然暴增什么原因 燃气费怎么突然暴增 体重瞬间暴增的原因 体重暴增是什么原因 短时间内体重暴增的原因 天然气用量突然一个月暴增 用电突然暴增 突然食欲暴增 发现用电量突然暴增
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...你财富这个金融平台靠谱吗?最近想开始理财了,有没有什么推荐的产品... 如何保持良好的心态,应对生活压力 氟利昂对臭氧层的危害 ...姓党,孩子于2012年12月18日21点21分出生,谢谢!!! 飞利浦录音笔如何使用 大别山到临沂有多远 济南到大别山有动车吗? 大家帮忙一下。我弟弟的作业趣味猜城市名。 ...久雨初睛,雪消冰融,船出长江口,风平浪静,四季花开,海上尽绿洲。_百... 填选城市名(长春.旅顺.宁波.开封.重庆.无锡.贵阳)。 templog.ldf和tempdb.mdf这两个文件过大怎么解决 如何在tempdb出错的情况下修复数据库服务器 如何更改SQL Server 2005数据库中tempdb的位置 如何恢复tempdb数据库 sqlserver中后缀为.mdf的文件是干什么用的(sqlserver数据库mdf文件在哪) 如何收缩 SQL Server 中的 Tempdb 数据库 怎样检验漂白核桃 如何去除核桃油脂 文玩核桃的黄斑可以去掉吗 如何清洗核桃 手上核桃水如何去除 用什么化学原料可以除去核桃皮 怎样去除核桃污渍 去核桃皮用什么药水 怎样去生核桃渍 迪迦奥特曼有几部? 倒闭款的鞋是什么意思? 有什么好看球鞋推荐吗? 白棕倒钩全名 乔丹标志详细来源 sql server2008查询出来的结果不能修改,更新 tempdb对SQL Server数据库性能有何影响 如何对SQL Server中的tempdb“减肥”求解答 如何清除sqlserver tempdb数据 SQL SERVER tempdb 问题 谈谈Tempdb对SQL Server性能优化有何影响 MSSQLSERVER错误 锛的读音 SQL安装会产生多少个数据库 有多少系统数据库 sql servers数据库文件放在哪里? sqlserver2012 能分离tempdb日志文件吗 请问只有master.mdf,没有备份文件的情况下,怎么恢复master数据库,sql server 2008 r2. User Instance=true 是什么? 小额贷款app哪个好用? 腾讯健康系统是按照生日来解除吗? 王怎么读音 腾讯健康系统是按照身份证上的日期在十八岁解除吗? 为什么我的QQ一直显示手机在线 王者荣耀健康系统到了18岁会自动解除吗 靠谱快速的小额贷款app有哪些