Sql Server 2000 - tempdb越来越大

时间:2009-07-13 14:51:21

标签: sql-server-2000 tempdb

我们有一个SQL Server 2000生产环境,突然(即最近3天)某些东西导致tempdb数据文件变得非常大(45 gigs,数据库只有10演出)。 昨天,在它再次发生之后,我们缩小了数据库并单独运行主要批处理过程而没有任何问题。但是,今天早上数据库又恢复了45场演出。

有没有一种简单的方法可以找出导致此数据库增长如此之大的原因?理想情况下,今天可以查看的内容,但如果没有可用的东西可以设置为明天获取该信息。

BTW:收缩数据库会在几秒钟内收回空间。

5 个答案:

答案 0 :(得分:2)

与Jimmy达成一致,您需要使用SQL事件探查器来查找创建如此密集的临时对象。这可能是使用某些报告或类似内容的临时表。

答案 1 :(得分:1)

我想感谢大家的答案,因为他们肯定会导致问题的原因。

我们打开了SQL分析器,确实出现了大量的批量负载。由于我们正在开展一个项目,将“冒犯”的工作也转移到mysql中,我们现在可能只会看东西。

答案 2 :(得分:0)

你有一个重建索引的作业吗?它可能使用SORT_IN_TEMPDB

或任何其他进行排序的大型查询可能会扩展tempdb

答案 3 :(得分:0)

这可能与TempDB设置的恢复模型有关。它可以设置为FULL而不是BULK-LOGGED。完全恢复会增加事务日志大小,直到执行备份。

查看数据文件大小与事务日志大小。

答案 4 :(得分:0)

我不是DBA,而是一些想法:

  • 有可能有临时 正在创建但未删除的表? ##tempTable
  • 有可能吗? 有一个大的临时表 创建(和删除)但空间 没有回收?
  • 你在做什么 系统的批量加载 可能会使用临时表? (我不是 确定你是否可以)但你可以打开 tempdb自动收缩?