Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Temp DB将在何时重新获得取消分配的空间?_Sql_Sql Server_Memory Management_Tempdb - Fatal编程技术网

Sql Temp DB将在何时重新获得取消分配的空间?

Sql Temp DB将在何时重新获得取消分配的空间?,sql,sql-server,memory-management,tempdb,Sql,Sql Server,Memory Management,Tempdb,我知道重新启动SQL server(或缩小数据库)时会释放已取消分配的内存,不幸的是,这不是适合我的客户端的解决方法 如果temp db大小为10mb,则在执行一个过程后会增长到500mb temp db的可用大小为490mb。是否有任何方法可以释放分配的大小并重新获得它。在不重新启动或手动收缩的情况下,将tempdb恢复到10mb???重新启动或收缩将是这里最有效的选项,但是您(风险自负)使用DBCC清除一些缓存和缓冲区(即:DBCC FREEPROCCACHE、DBCC DROPCLEANB

我知道重新启动SQL server(或缩小数据库)时会释放已取消分配的内存,不幸的是,这不是适合我的客户端的解决方法


如果temp db大小为10mb,则在执行一个过程后会增长到500mb temp db的可用大小为490mb。是否有任何方法可以释放分配的大小并重新获得它。在不重新启动或手动收缩的情况下,将tempdb恢复到10mb???

重新启动或收缩将是这里最有效的选项,但是您(风险自负)使用DBCC清除一些缓存和缓冲区(即:DBCC FREEPROCCACHE、DBCC DROPCLEANBUFFERS)

你可能已经意识到了,但是重启实际上并没有缩小大小。随着实例的重新启动,一个新的TEMPDB完全被配置成默认大小的自动增长。这是许多人在优化一个实例的TimPDB时首先考虑的问题。通常最好将初始的TEMPB大小设置为SI。ze不需要扩展,所以您根本不需要自动增长它

收缩是调整文件的大小,但这通常是不需要的,特别是当数据库上存在打开的事务时,如果您冒着这样做的风险,那么在收缩过程中可能会导致损坏


无论采用哪种方法,一定要非常小心。收缩是一个坏习惯。它可能会导致你支离破碎

SQL Server服务重新启动时,会重新初始化TempDb大小。因此,如果初始大小为20 GB,则重新启动后,SQL将有20 GB的TempDb文件。清理缓冲区和缓存不会收缩TempDb文件。在工作时间内,不建议在生产环境中清理缓冲区和缓存,直到您非常努力我没有理由这样做

最佳实践是使TempDb大小适合您的SQL操作;您可以有多个TempDb文件,并使SQL具有并行工作的优势。 我一直在开发大于4 TB的大型DW解决方案,我们每个周末(非营业时间)都会重新启动服务


在最坏的情况下,也不要收缩文件,直到您处于一次性使用模式并且不再喜欢SQL Server。

我尝试了这些命令,但没有重新获得可用空间。还有其他方法吗?为什么?如果有需要数据库的常规操作(包括任何数据库,tempdb)要达到一定的大小,为什么要进行收缩操作,使其再次增长?即使使用即时文件初始化,也需要时间来增长数据库。如果您担心占用的内存,请不要这样做。SQL Server足够智能,可以在需要时转储一段时间内未使用的内存页(即在记忆压力下)。temp正在增长到非常大的大小,但使用的空间仅为分配大小的10%。。由于增长,例如90gb,存储介质已满。是否有一种方法可以使tempdb自动调整到所需的10%的空间,并释放剩余空间?但这是我的观点。显然,您对tempdb有持续的需求rge。通过缩小它,你可以避免其他事情的冲击,声称Soave和tempdb不能像它需要的那样大。当这种情况发生时,什么会失败?