2

这真的是一个两管齐下的问题。

一、我遇到一个现象,SQL server使用全局临时表会消耗大量tempDB日志文件空间,而使用本地临时表会消耗数据文件空间?

这是正常的吗?我在网络上找不到任何地方谈论使用全局临时表与本地临时表时以这种方式消耗日志文件空间。

二,如果这是预期的行为,有没有办法告诉它不要这样做:)。我有足够的数据空间(6 GB),但我的日志空间受到限制(750 MB,增长有限)。像往常一样,tempDB 是使用简单恢复设置的,因此运行到日志文件空间限制之前从来都不是问题……但我从来没有像以前使用过的那样使用全局临时表。

谢谢!!乔尔

4

3 回答 3

1

当任何一种形式的临时表被创建(本地或全局)时,该表被物理地创建并存储在 tempdb 数据库中。因此,这些表上的任何事务活动都会记录在 tempdb 事务日志文件中。

但是没有任何设置,您可以实现物理表而不是临时表,以便将数据存储在用户数据库中,从而使用该数据库的关联数据和事务日志文件。

如果您真的想深入了解 tempdb 数据库,请查看以下资源。

您想了解的有关 tempdb 数据库的所有信息

于 2009-08-13T09:27:28.983 回答
0

这些全局临时表之一的寿命是多少?它们是否在合理的时间内下降?当用户断开连接时,“常规”临时表会被删除,如果不是在此之前手动,“全局”(##)临时表会在创建会话结束时被删除,如果内存可用。如果全局临时表持续很长时间,我可以看到日志在增长,因为可能是管理临时表活动的日志记录仍被标记为活动日志记录,并且不会通过日志备份(完全恢复)释放或检查点(简单)

于 2009-08-13T23:41:24.157 回答
0

会话的长度将产生如上所述的影响。

此外,临时表在事务中工作,表变量在事务上下文之外工作。因此,临时将在日志文件中记录与表使用更新相关的条目。

于 2009-08-21T23:29:30.517 回答