我观察到,生产环境中的tempdb在初始化后已经增长到了100 GB。
据我所知,由于服务器负载和一些昂贵的查询,在短短两天的时间内就导致了tempdb的增长。我已经观察了一个多星期了,发现这个尺寸没有进一步增长,并且保持不变。
我在服务器上配置了一个mdf文件,用于配置具有8个逻辑核心的tempdb。尽管我可以根据逻辑核心添加多个mdf文件。
我观察到,在我的例子中,temp db数据文件的空闲页大小和物理大小是相同的。
SELECT SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;请帮助我理解,如果不显式执行脚本来缩小空间,或者通过重新启动服务器来重置临时db分配,那么这个物理空间是否会被自动回收??
发布于 2016-04-07 10:55:36
与所有数据库一样,对新对象可重用tempdb中的空闲(未分配)空间。不需要采取任何行动来重复使用这个空间。
tempdb文件的物理大小将反映自实例上次启动以来的高水位增长标记。在重新启动实例之后,大小将恢复到初始文件大小,如果发生增长,则释放磁盘卷上的空间。还可以使用DBCC SHRINKFILE释放未使用的文件空间。这不应该是例行公事,但如果增长是一种异常,例如由于一个糟糕的查询,则可能是可取的。最好是调整文件的大小,以满足预期的空间需求,并将增长作为满足意外需求的安全网。
通过减少某些工作负载的分配页争用,大小和增长相同的多个tempdb数据文件可以提高性能。然而,这与太空开垦无关。
https://dba.stackexchange.com/questions/134639
复制相似问题