1

我们知道在 Sql Server 中创建了事务日志,我有一个存储过程,当它从 Visual Studio 运行时,创建的事务日志的大小是相同 SP 时的 3 倍(大约 150 GB)在 Sql Server Management Studio(大约 50 GB)中运行,我不需要这些事务日志。我的问题是:为什么大小有 3 倍的差异。?是否有可用的设置,以便不会创建这些日志.. 因为我不需要这些日志有没有技巧,这样我就可以做一些事情,使创建的日志超过特定大小,被下一个日志覆盖.

4

2 回答 2

0

您有查询的示例吗?甚至 50 GB 对于存储过程来说似乎也太大了。

顺便说一句 - 您需要日志,因为数据库是根据其中包含的信息更新的。

您应该能够更改存储过程,以便将更少的信息写入日志,或者让数据库使用 Checkpoint 命令定期将日志中的信息写入数据库。

我最近遇到了一个问题,即一系列格式不正确的语句填满了日志,重写查询帮助我减小了日志大小(并且 sp 运行得更快)

于 2014-05-13T15:34:14.463 回答
0

假设这不是生产服务器,并且您永远不需要恢复到特定时间点......

您可以将数据库的恢复模式设置为simple.

ALTER DATABASE [YourDatabase] SET RECOVERY SIMPLE 

来自 MSDN:

自动回收日志空间以保持较小的空间需求,从根本上消除了管理事务日志空间的需要。

至于 Visual Studio 和 Management Studio 之间日志增长的差异......我的猜测是 Visual Studio 可能会多次运行存储过程,可能是为了收集元数据。我将分析有问题的数据库,并查看在每种情况下实际影响它的内容。

于 2012-12-07T17:39:22.340 回答