程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> SQL Server已提交讀快照隔離級別的設置

SQL Server已提交讀快照隔離級別的設置

編輯:MySQL綜合教程

如果要把SQL Server數據庫事務隔離級別設置為已提交讀快照隔離

如果直接運行下面的語句:

ALTER Database [mydbname] SET READ_COMMITTED_SNAPSHOT ON

會可能被阻塞很長時間。我這邊在正式環境測試過4個小時都沒有執行完。

你可以選擇運行下面的語句:

復制代碼
if(charindex('Microsoft SQL Server 2005',@@version) > 0)  
begin  
    declare @sql varchar(8000)  
    select @sql = ' 
    ALTER DATABASE ' + DB_NAME() + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE ; 
    ALTER DATABASE ' + DB_NAME() + ' SET READ_COMMITTED_SNAPSHOT ON;  
    ALTER DATABASE ' + DB_NAME() + ' SET MULTI_USER;'  
  
    Exec(@sql)  
end  
復制代碼

經過測試腳本在1分鐘內執行完成。

過查詢 sys.databases的 is_read_committed_snapshot_on字段

select is_read_committed_snapshot_on from sys.databases where name = DB_Name()  

is_read_committed_snapshot_on如果為1表示目前為已提交讀快照隔離級別。

 

參照網址:http://www.it118.org/Specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/a25f60b1-697d-4651-b4e4-e7e1598feced.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved