SQL Server 在差不多1000人用戶使用的公司常會出現此錯誤,導致用戶需要重複操作一次
請問如何避免更新時,同時有其他人在使用導致報錯
是否能改成不馬上報錯,改成等待別人完成時再更新?
我知道有幾種簡單的解法,建議您先用Profiler觀察幾天確定經常發生被鎖定的Table及SQL指令是那些,您才好視不同情況用不同的解法:
1.Dirty Read:針對一些對查詢結果要求不是很精確場景可以使用,作法也最簡單,在select指令後加個with nolock就可以了。(温馨提示:慎用!!財會系統絕對不要使用,除非您想被火了)
2.讀寫分離:多加一台資料庫主機,與原資料庫作複寫,查詢/報表都指定到另一台去撈資料,這個作法也不難吧?最難的部份應該是要有錢買主機~~
3.分析SQL指令並調整程式架構:這個方法工作量最大難度最高,也是工程師的最佳解,但以我個人對原Po印象中的公司生態,還是算了吧!ERP能跑不死機就好~