2013-03-16 49 views
0

我有一個要求來引用數據庫中的一組列,並更新這些列。由於這組列在多個並行事務中是公共/共享的,因此如何在不影響數據完整性和一致性的情況下實現良好性能。爲了提供更多的清晰度,我有一個長期的交易,其中,我做了一些預處理和計算某些值。然後我將這個值與極限進行比較。限制是共同/共享列,如果我正在進一步處理事務,則必須更新該列。應用程序將有多個用戶,他們將嘗試執行類似的操作,並且必須與相同的「限制」進行比較並繼續進行。高性能

+0

什麼是限制 - 某種索引?你可以使用hilo優化器嗎? – 2013-03-16 11:06:26

+0

可能更適合程序員.... – Jayan 2013-03-16 11:06:35

+0

大多數數據庫不支持對同一個表的並行事務。如果您需要交易同時進行,我建議您重新考慮您的設計。 – 2013-03-16 21:53:33

回答

2

如果我正確理解你,這個限制就像一種信號量。訪問信號量不應該是正常事務的一部分。您希望立即增加限制,如果失敗,您希望中​​止交易。

達到此目的的一種方法是將限制增加作爲子交易運行。如果您使用的是交易分界,則可以使用TransactionAttributeType.html#REQUIRES_NEW

如果你想得到更詳細的答案,請澄清你的問題。