關于SQL SERVER高并發訪問的解決辦法
關于SQL SERVER高并發訪問的解決辦法
問題:
后臺系統需要連接SQL SERVER,瞬時數據操作可能會很大,如同時有好幾萬數據要插入數據庫,但在插入數據的同時另外的線程可能還要訪問本數據庫,插入數據的操作優先級比較低,其他的訪問需要即時返回,想了很久不知道該怎么解決,望高手賜教了。
回答:
1. 提高服務器硬件配置
2. 使用 replication 之類的同步技術, 將頻繁操作的表同步為多份, 將操作分散到這些同步的表中
3. 對于數據查詢, 盡量使用 READ UNCOMMITTED 事務隔離級別, 以減少鎖的開銷
===
可以使用快照隔離級別
===
--查詢時,使用
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--或
with(nolock)
--并且建好索引,盡量減少耗時查詢
--多個服務器分擔壓力
--提高硬件性能這是最耗成本但最有效的方法了
===
查詢時候不上鎖
select *from tb(nolock)
使用鏡像復制等 添加一些只讀的數據庫!
===
除了以上的方法之外
2005還可以采用row-versiong based的snapshot 事務隔離層級。
建立snapshot database,將查詢、更新兩種不同操作隔離
posted on 2011-08-19 16:58 SkyDream 閱讀(2111) 評論(0) 編輯 收藏 所屬分類: sql優化