PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
2011新的世紀
Regular Member
 

加入日期: Jan 2011
文章: 64
引用:
作者comics
如果再去用 SELECT 統計總數,在同時大量購買的狀況下反而造成DATA LOCK...

我在想是否可以用 TRIGGER 自動去加總異動人數統計..


主因應該是LR2001所講得,有uncommit的transactions。
現在SQL server預設的isolate transaction level是read commit。所以未commit會造成read lock的情況。
如果可以有辦法不要使用交易,就可以簡單化這個情況。
或是更改transaction isolate level
(參考SET TRANSACTION ISOLATION LEVEL (Transact-SQL) 。如read uncommit就不會因交易作業而鎖住read動作。

使用trigger通常會慢一點,因主要原因是在transaction這裡鎖住了。

ycli6921兄是最好的解法。但是若是server cluster的環境下比較難實現。
其實在大部份情況下是可以不用動到交易的。
     
      
舊 2014-12-29, 11:15 AM #11
回應時引用此文章
2011新的世紀離線中  
micall.lee
*停權中*
 
micall.lee的大頭照
 

加入日期: Jul 2013
文章: 331
引用:
作者comics
我們的狀況就是類似您舉出的狀況,

依shinRong的建議
目前的確也是有建一個欄位在物件主檔...
我會試著去把這個欄位拉出來...

因為大量同時INSERT 購買的紀錄...
如果再去用 SELECT 統計總數,在同時大量購買的狀況下反而造成DATA LOCK...

我在想是否可以用 TRIGGER 自動去加總異動人數統計..

恩,那我的方案是沒有考慮你們的狀況,請參考就好
 
舊 2014-12-29, 11:20 AM #12
回應時引用此文章
micall.lee離線中  
comics
Major Member
 

加入日期: Oct 2002
您的住址: 中華民國台灣省桃園縣
文章: 154
引用:
作者2011新的世紀
主因應該是LR2001所講得,有uncommit的transactions。
現在SQL server預設的isolate transaction level是read commit。所以未commit會造成read lock的情況。
如果可以有辦法不要使用交易,就可以簡單化這個情況。
或是更改transaction isolate level
(參考SET TRANSACTION ISOLATION LEVEL (Transact-SQL) (http://msdn.microsoft.com/zh-tw/library/ms173763.aspx) 。如read uncommit就不會因交易作業而鎖住read動作。

使用trigger通常會慢一點,因主要原因是在transaction這裡鎖住了。

ycli6921兄是最好的解法。但是若是server cluster的環境下比較難實現。
其實在大部份情況下是可以不用動到交易的。


後來我也有查到 TRIGGER 會變慢.../_\

糟糕就是 不能不用交易...
舊 2014-12-29, 03:12 PM #13
回應時引用此文章
comics離線中  
comics
Major Member
 

加入日期: Oct 2002
您的住址: 中華民國台灣省桃園縣
文章: 154
引用:
作者comics
後來我也有查到 TRIGGER 會變慢.../_\

糟糕就是 不能不用交易...


剛才問了其他同事

都是說 把 UPDATE 獨立出 交易...

若後續的交易失敗 ,就將原來那筆資料 -1...
舊 2014-12-29, 03:58 PM #14
回應時引用此文章
comics離線中  
stylus
Regular Member
 

加入日期: May 2008
文章: 57
引用:
作者ycli6921
累計購買數量放在記憶體裡,每次訂單進來做對應的遞增。


是指在SQL Server裡面設全區變數嗎?
舊 2014-12-29, 04:49 PM #15
回應時引用此文章
stylus離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是09:26 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。