SQL Server 2008 R2 SP1 - Tempdb“可用空间”显示负值

Chi*_*nho 7 sql-server-2008 sql-server tempdb

请帮忙,因为这个问题让我发疯......

Tempdb有四个数据文件和一个日志文件。它们都位于同一个专用驱动器上。

当我tempdb在 SQL Server Management Studio (SSMS) 中右键单击以查看属性 --> 常规...我看到“大小”为 ~65000 MB,“可用空间”为 ~64000 MB。但是,当我尝试通过 GUI 缩小文件时,我看到“当前分配的空间”没有改变并且仍然显示初始大小。

这也是“可用空间”显示为负数的地方。到目前为止,我找到的唯一解决方法是重新启动 SQL Server 以刷新tempdb,但我不能继续这样做。

有没有人遇到过这个问题,并知道它的根本原因/永久解决方案吗?

小智 0

好吧,您必须检查您的 tempdb 设置并概述服务器的使用情况。Microsoft 提供了管理 tempdb 和优化其性能的主要建议(请参阅http://msdn.microsoft.com/en-us/library/ms175527(v=sql.105).aspx)。尝试应用它们并查看结果(就我而言,它有助于将我的 17GB 数据库优化到 4GB)

您也可以使用 sp_spaceused proc 它临时数据库。它会告诉您哪个表消耗了数据文件中的大部分空间。您还可以使用 Profiler 来检测文件自动增长和日志文件自动增长。如果它经常发生变化 - 您的 tempDb 将自动占用额外的空间,并且您可能必须更改使用 #tmp 表的逻辑。

在工作服务器上缩小 tempdb 可能会导致您在其他数据库上的查询时遇到一些麻烦(仅在单一模式下执行)