簡體   English   中英

沒有交易的存儲過程

[英]Stored procedure without transaction

我有一個存儲過程,該過程執行計算並將大量數據存儲在另一個數據庫的新表中。 如果出了什么問題,我就放下桌子。

我已經將此數據庫的恢復模式設置為簡單,因為其他地方都可以使用該數據。 在存儲過程中,我還能做些其他事情來限制寫入事務日志或完全刪除事務以加快過程嗎?

我建議您使用SSIS包將數據從一個數據庫轉換到另一個數據庫。 在SSIS中,您可以控制轉換后的數據,並可以使用禁止插入。 在buck插入模式下,您限制數據庫完全寫入事務日志。

從SQL Server中的公式中完全消除事務日志是不可能的。

您可以嘗試與bulk insert一起檢查批量記錄的恢復模型,但是如果您的計算很復雜並且不能在單個select語句中表示,那么值得嘗試SSIS。

即使在使用SSIS時,我也遇到了類似的情況,其中我的登台數據庫將日志保存的日志大小超過了實際數據大小的10倍(通過簡單日志記錄和使用批量插入)。 經過大量搜索,我發現在進行大數據操作(例如加載數據倉庫)時阻止這種情況的發生是不可行的。 取而代之的是,通過收縮日志來完成后更容易清理。

dbcc收縮文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM