[問題] 是否使用LOCK

作者: unstoppable (BEN)   2014-03-19 01:30:08
小弟功力粗淺,想請教各位先進
軟體內有個主資料表Main_DataTable
軟體有多個線程同時從不同網站抓取資料並寫入Main_DataTable
問題1:
如果不使用LOCK(Main_DataTable),會不會很容易造成資料上的衝突?
問題2:
如果LOCK(Main_DataTable),當網站1正在存取,其他線程wait,
是不是會有效率上的問題?
如果是的話,有沒有其他方式可以參考?
作者: m339606 (mize)   2014-03-19 08:21:00
衝突是指?會有什麼問題?
作者: GoalBased (Artificail Intelligence)   2014-03-19 19:28:00
要用LOCK
作者: unstoppable (BEN)   2014-03-19 22:08:00
表中有主鍵,同步寫入很容易出現主鍵已存在已經有加過判斷當主鍵不存在才寫入,還是會發生請問G大,那問題2會需要考慮到嗎?
作者: g66932007 (孤單的人)   2014-03-19 22:14:00
回樓上 迴圈裡面用try catch包,主鍵存在會跳cath,執行下一個線程
作者: GoalBased (Artificail Intelligence)   2014-03-19 22:22:00
資料碰撞本來就要等一下阿 等看你是要等一下還是要資料錯誤吧XD 答案應該很明顯
作者: unstoppable (BEN)   2014-03-19 22:27:00
恩恩~感謝樓上兩位G大
作者: f1234518456 (...........)   2014-03-19 23:09:00
要正確性效率就會低一點 看你怎麼取捨...
作者: andymai (人生只有一次)   2014-03-19 23:12:00
改設計的話~就"可能"不用lock~端看有沒有可能不建主鍵先寫入~之後再補...
作者: Litfal (Litfal)   2014-03-20 01:36:00
主鍵用Guid跟他賭XD

Links booklink

Contact Us: admin [ a t ] ucptt.com