提高SQL SERVER併發能力
從MSDN看到這樣一個解決方案:SET TRANSACTION ISOLATION LEVEL
首先,設定資料庫的事務隔離級別為 只讀快照:READ_COMMITTED_SNAPSHOT
設定READ_COMMITTED_SNAPSHOT隔離模式很簡單,只要我們簡單的一步操作就可以實現。
ALTER DATABASE DATABASE_NAME
SET READ_COMMITTED_SNAPSHOT ON;
READ_COMMITTED_SNAPSHOT的強項在於查詢的時候不會下鎖,影響別的事務操作,而且可以保障查詢的資料滿足絕大多數的精確要求。
這裡牽涉到的另一個問題是,有的更新過程,需要對某些關鍵資料行進行鎖定,以避免重入導致的資料更新錯誤,比如財務帳戶資訊。
比如,在一個儲存過程中,使用TIMESTAMP型別欄位作為行更新的依舊,在快照模式下,就會引發錯誤導致更新失敗。
MSDN提供了一個這樣的解決方案:
當 READ_COMMITTED_SNAPSHOT 資料庫選項設定為 ON 時,您可以使用 READCOMMITTEDLOCK 表提示為 READ COMMITTED 隔離級別上執行的事務中的各語句請求共享鎖,而不是行版本控制。
那我們完全在這種更新事務中,使用如此共享鎖:
READ_COMMITTED_SNAPSHOT的強項在於查詢的時候不會下鎖,影響別的事務操作,而且可以保障查詢的資料滿足絕大多數的精確要求。
這裡牽涉到的另一個問題是,有的更新過程,需要對某些關鍵資料行進行鎖定,以避免重入導致的資料更新錯誤,比如財務帳戶資訊。
比如,在一個儲存過程中,使用TIMESTAMP型別欄位作為行更新的依舊,在快照模式下,就會引發錯誤導致更新失敗。
MSDN提供了一個這樣的解決方案:
當 READ_COMMITTED_SNAPSHOT 資料庫選項設定為 ON 時,您可以使用 READCOMMITTEDLOCK 表提示為 READ COMMITTED 隔離級別上執行的事務中的各語句請求共享鎖,而不是行版本控制。
那我們完全在這種更新事務中,使用如此共享鎖:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->update A with(READCOMMITTEDLOCK) set CASH= yy_AMT+@M_CAMT where UID = @U_ID and TIME_STAMP=@TS;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-679380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式內快取助你提高併發能力!快取
- 如何提高伺服器的併發處理能力?硬核!伺服器
- SQL Server 如何合併組內字串SQLServer字串
- 使用C#和MemoryCache元件實現輪流呼叫APIKey以提高併發能力C#元件API
- 如何充分發揮 SQL 能力?SQL
- 提高自身Java開發能力的方法?Java
- sql-server觸發器SQLServer觸發器
- SQL Server:觸發器詳解SQLServer觸發器
- sql serverSQLServer
- SQL Server 觸發器詳情HOPPSQLServer觸發器
- 如何禁止 SQL Server 中的 xp_cmdshell 以提高安全性SQLServer
- Moebius for SQL ServerSQLServer
- sql server 使用SQLServer
- SQL Server教程SQLServer
- 【能力提升】SQL Server常見問題介紹及快速解決建議SQLServer
- 使用SQL-Server分割槽表功能提高資料庫的讀寫效能SQLServer資料庫
- 淺入淺出SQL Server 觸發器SQLServer觸發器
- 如何提升伺服器的高併發能力伺服器
- 如何快速排程 PTS 的百萬併發能力
- Socket Server 的 N 種併發模型彙總Server模型
- Socket Server的N種併發模型彙總Server模型
- SQL SERVER優化SQLServer優化
- Nodejs 操作 Sql ServerNodeJSSQLServer
- SQL Server 別名(as)SQLServer
- sql server遞迴SQLServer遞迴
- Sql server with as update用法SQLServer
- SQL Server下載SQLServer
- SQL Server Left joinSQLServer
- SQL Server SUBSTRING FunctionsSQLServerFunction
- SQL Server LEFT FunctionsSQLServerFunction
- SQL Server Unique ConstratintsSQLServer
- What is dbo in SQL Server?SQLServer
- ms sql server排序SQLServer排序
- SQL Server 替換SQLServer
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- 多人協同開發,git workflow 提高團隊協作能力Git
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- Sql_server基本操作SQLServer
- SQL SERVER 2008安全配置SQLServer