2

我有一个 SP,其中包含一组在 SP 中创建的没有索引的 3 个临时表。所有三个都使用 INSERT INTO ... WITH (TABLOCK) 插入。userDB 和 tempDB 的数据库恢复模型都很简单。

该 SP 正在生成和插入新数据,并且事务提交/回滚足以保持数据完整性。所以我希望它做最少的日志记录,我认为我已经通过使用 TABLOCK 提示启用了它。

我正在使用以下查询检查执行 SP 之前和之后的日志生成,并且在添加 TABLOCK 提示后发现日志生成没有区别。(签入 tempDB,因为表是临时表)

SELECT count(1) as NumLogEntries
            , sum("log record length") as TotalLengthWritten
FROM fn_dblog(null, null);

为了启用最少的日志记录,我还需要做些什么吗?

PN:如果我在管理工作室中使用此提示单独执行相同的 INSERT INTO,我能够看到减少的日志记录,但如果我在 SP 中执行相同操作则不会。我还尝试在插入语句之前添加跟踪标志 610 ON 但没有效果。

4

0 回答 0