1. 程式人生 > >關於資料庫隔離級別-快照(SnapShot)

關於資料庫隔離級別-快照(SnapShot)

在事務中將隔離級別設為SnapShot,可提升迸發效能,這裡簡單介紹下設定使用方法

在單獨事務中啟用SNAPSHOT

不開啟預設選項,但需要在單獨的事務中使用快照,需要先開啟一個資料庫選項

  • 開啟選項,允許快照隔離

    • SSMS操作
      資源管理器選中某資料庫-屬性-選項-允許快照隔離-True
    • T-SQL操作
      ALTER DATABASE DBName SET ALLOW_SNAPSHOT_ISOLATION ON
  • 在事務操作前加SET TRAN ISOLATION LEVEL SNAPSHOT

    • 例子
      SET TRAN ISOLATION LEVEL SNAPSHOT
      your transaction
      code

設定資料庫預設為COMMITTED_SNAPSHOT

資料庫預設級別設定後,事務前不用加Set語句就可以起到快照效果

  • SSMS設定
    資源管理器選中某資料庫-屬性-選項-讀提交快照處於開啟狀態-True
  • T-SQL設定
 ALTER DATABASE DBName SET READ_COMMITTED_SNAPSHOT ON

查詢資料庫是否開啟了相關設定

SELECT database_id,name
      ,snapshot_isolation_state -- 1代表 允許快照隔離
      ,is_read_committed_snapshot_on -- 1
代表 預設隔離級別為 Read Committed SnapShot FROM sys.databases