我们正试图在SQLServer2005Ent SP4之一上分析tempdb的增长。
我知道tempdb将需要空间,这取决于事务,以及查询是如何设计来使用的。
我们遇到了磁盘空间变得满的问题,在这里我们分析了tempdb是如何在一周内增长那么大的。
在重新启动之后,通过监视,我们看到了4-5个查询,这些查询阻塞版本存储超过20分钟,同一天它的初始大小为2GB(4个数据文件),在6-8小时的垃圾邮件中增长到100 GB以上。
例如
查询A保存版本存储10分钟,当前版本生成速率为23.81 KB/秒,清理速率为0.00 KB/秒。版本存储大小为17 MB,tempdb文件大小为10332 MB。
一个小时后,查询B运行,版本存储16分钟,当前版本生成速率为33.81 KB/秒,清理速率为0.00 KB/秒。版本存储大小为45 MB,tempdb文件大小为45332 MB。
类似地,查询C在3-4小时后运行,版本存储15分钟,当前版本生成速率为33.81 KB/秒,清理速率为0.00 KB/秒。版本存储大小为19 MB,tempdb文件大小为85332 MB。
等等等等。在我们监视那天的过程中。
现在,第二天和第二天都会运行相同的查询,
我们在第一天就看到了tempdb分配和删除值运行得有点相似,但是tempdb并没有增长得那么快。
同样的情况发生在即将到来的7-8天,增长率约为8-10 GB,而第一天则增长到每天运行类似查询的100 GB。
另外,select count(*) from sys.dm_tran_version_store的当前输出
是196470,从重启到现在已经两天了。
也许我不知道这里的某些过程,但是请帮助我理解除了那些标识的查询之外,还有什么原因,因为如果这些查询是导致tempdb增长那么大的原因,那么我们正在努力改进它们。
注意: tempdb大小为110 GB,它显示的空闲空间几乎为109 GB。
发布于 2015-06-23 18:26:22
这可能有很多原因。
CHECKPOINT强制使用闩锁进程。希望这能帮到你。
发布于 2015-07-06 18:31:14
版本存储主要是由于事务长时间运行或事务吞吐量高所致。您需要查找导致这种情况的查询。除该版本存储区外,还在下列条件下使用:
请记住,TempDb检查点的优先级低于其他数据库检查点。我写了一篇文章,指定了TempDb建议,这将为您提供更多关于它的见解。如果您有高版本存储,那么您需要了解以上几点,我已经提到了。
https://dba.stackexchange.com/questions/104909
复制相似问题