没有交易的存储过程

时间:2014-08-21 06:18:45

标签: sql sql-server tsql stored-procedures

我有一个存储过程,它执行计算并将大量数据存储在另一个数据库的新表中。 如果出现任何问题,我只是放下桌子。

我已经将此数据库的恢复模式设置为简单,因为数据在其他地方可用。我可以在存储过程中做些什么来限制写入事务日志或完全删除事务以加快进程?

3 个答案:

答案 0 :(得分:0)

我建议你使用SSIS包将数据从一个数据库转换到另一个数据库。在SSIS中,您可以控制转换后的数据,并可以使用balk insert。在降压插入模式下,您可以限制数据库完全写入事务日志。

答案 1 :(得分:0)

不可能从SQL Server中的等式中完全消除事务日志。

您可以尝试与bulk insert一起检查批量记录的恢复模型,但如果您的计算很复杂且无法在单个select语句中表达,则可能值得尝试SSIS。

答案 2 :(得分:0)

即使在使用SSIS时我遇到了类似的情况,我的登台数据库保存的日志数量是实际数据的10倍(简单日志记录和使用批量插入)。经过大量搜索后,我发现在进行大数据操作(如加载数据仓库)时阻止这种情况发生是不可行的。相反,通过缩小日志来完成清理会更容易。

dbcc shrinkfile