并發提交,單號避免重復
這也是網上看到的,感覺解決方法不錯。
這是一個很有代表性的問題,在C/S結構的數據庫應用程序中經常碰到,如果這種問題
不能很好地解決,可能造成系統速度緩慢、死鎖甚至崩潰。我們在開發的過程中多次碰到了
這樣的問題。有些辣手,但還是沖過去了。
? ? 解決這種問題應該本著兩個原則:
? ? 1、要建立PRIMARY KEY;
? ? 2、事務開啟到提交之間的時間要盡可能地短。
? ? 我們處理的時候用到了兩種方法:
? ? 1、建立一個專門的表,用來存放最大值。每次建立新單據的時候,提取該值并加1,
然后再寫回。這是一種靜態的處理方法。
? ? 2、在單據完成并提交數據時,讀取編號并加1,開啟事務,提交事務。這個時間非常
短,一般不會出現編號重復,即使出現重復,數據回滾,可以重新提交。這是一種動態的
處理方法。
posted on 2009-04-28 13:31 freebird 閱讀(456) 評論(0) 編輯 收藏 所屬分類: 數據庫