尋找關于這個的建議/意見。您認為將所有專案保存在單個資料庫事務中更好,還是將每個專案保存在自己的事務中,專案有子專案等...所以它們需要保存在事務中但整個組/串列才不是。我認為幾乎每個人都會進行批量保存,但我很好奇。下面為每個示例偽代碼。
單筆交易:
BeginTransaction()
for (int i = 0; i < items.Count; i )
items[i].Save();
CommitTransaction()
多筆交易:
for (int i = 0; i < items.Count; i )
{
BeginTransaction()
items[i].Save();
CommitTransaction()
}
uj5u.com熱心網友回復:
這可能由這些事務之一失敗時發生的情況的要求更好地確定。如果事務相關的,他們應該都失敗了,然后把回圈的事務之外。如果它們是離散事務,并且一個失敗不應使其他事務失敗,請將它們放入回圈中(并在適當時捕獲失敗和/continue或break)。
如果這無關緊要,并且您對性能方面非常感興趣,那么事務確實會增加開銷。慢多少取決于大量變數,包括單個查詢大小和性能、資料庫型別和配置以及硬體/虛擬化資源。對于慢查詢(查詢本身占用大部分時間)或非常大(對于瑣碎的查詢),它可能是微不足道的/無法衡量的。
多少由你來衡量。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/366230.html
