意见如何? procs引用另一个db导致日志增长?

时间:2008-10-17 17:47:40

标签: sql-server sql-server-2000

我在一台服务器上有2个数据库;让我们称它们为db A和B.数据库A大约是11 GB,数据库B非常小(155mb)。数据库B有一些视图和过程,它们不断访问和更新数据库A中的数据。

有趣的是,数据库B的日志很快就会变得很大,我认为它在一周内增长到大约12 GB。数据库A的增长速度并不快。

什么可能导致我的日志增长那么多?当您从另一个数据库中选择数据时会发生什么事情,这会导致我的日志增长吗?

我知道当你对不同服务器上的数据库执行类似的操作时,数据会在加入并选中之前全部移动到调用数据库...我可以看到这会导致日志增长,可能会发生同样的事情同一台服务器?

SQL2000 SP4 STD版
完全恢复模型

提前致谢, 约翰

BTW-我意识到将恢复模式改为Simple可能会有所帮助,但我想先知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

我无法想象为什么一个简单的SELECT语句会在事务日志中添加任何内容,但我对链接服务器没有太多经验,所以我无法肯定地说幕后可能会发生什么

但是,你说“数据库B有一些不断访问和更新数据库A中数据的视图和过程”,所以即使数据库A上存在基础数据,因为你的新应用程序连接到数据库B并使用它对象,这些操作记录在B的tran日志中似乎是合理的。

但这只是我的猜想。为什么不直接检查事务日志,看看它包含的内容是否合理? RedGate有一个免费的日志浏览器,可以使用SQL 2000(参见http://www.red-gate.com/products/SQL_Log_Rescue/index.htm);我之前只使用过一次,但它看起来效果很好,它确实在那个特殊情况下保存了我的培根。

我承认我对细节感到好奇,但在你的情况下,我很想抑制自己的好奇心,只是处理日志文件。毕竟,这只是暂时的,如果日志增长是链接服务器的工件,它应该在您完成新应用程序并退出数据库A后自行修复。

此外,Godeke对备份提出了一个很好的观点。如果您的日志文件过大,请更频繁地备份。备份它会截断日志,但仅限于内部;即,使用的日志文件的百分比将缩小,但在使用DBCC SHRINKFILE之前,磁盘上文件的实际大小不会改变。