我们有一个SQL Server 2000生产环境,突然(即最近3天)某些东西导致tempdb数据文件变得非常大(45 gigs,数据库只有10演出)。 昨天,在它再次发生之后,我们缩小了数据库并单独运行主要批处理过程而没有任何问题。但是,今天早上数据库又恢复了45场演出。
有没有一种简单的方法可以找出导致此数据库增长如此之大的原因?理想情况下,今天可以查看的内容,但如果没有可用的东西可以设置为明天获取该信息。
BTW:收缩数据库会在几秒钟内收回空间。
答案 0 :(得分:2)
与Jimmy达成一致,您需要使用SQL事件探查器来查找创建如此密集的临时对象。这可能是使用某些报告或类似内容的临时表。
答案 1 :(得分:1)
我想感谢大家的答案,因为他们肯定会导致问题的原因。
我们打开了SQL分析器,确实出现了大量的批量负载。由于我们正在开展一个项目,将“冒犯”的工作也转移到mysql中,我们现在可能只会看东西。
答案 2 :(得分:0)
你有一个重建索引的作业吗?它可能使用SORT_IN_TEMPDB
或任何其他进行排序的大型查询可能会扩展tempdb
答案 3 :(得分:0)
这可能与TempDB设置的恢复模型有关。它可以设置为FULL而不是BULK-LOGGED。完全恢复会增加事务日志大小,直到执行备份。
查看数据文件大小与事务日志大小。
答案 4 :(得分:0)
我不是DBA,而是一些想法:
##tempTable
?