調整事務隔離級別

2021-09-08 15:19:16 字數 1013 閱讀 9530

隔離屬性是 acid 的四個屬性之一,邏輯工作單元必須具備這四個屬性才能稱為事務。該屬性能夠使事務免受其它併發事務所執行的更新的影響。每個事務的隔離級別實際上都是可以自定義的。

microsoft® sql server™ 支援 sql-92 中定義的事務隔離級別。設定事務隔離級別雖然使程式設計師承擔了某些完整性問題所帶來的風險,但可以換取對資料更大的併發訪問權。與以前的隔離級別相比,每個隔離級別都提供了更大的隔離性,但這是通過在更長的時間內占用更多限制鎖換來的。事務隔離級別有:

可以使用 transact-sql 或通過資料庫 api 來設定事務隔離級別:

transact-sql

transact-sql 指令碼和 db-library 應用程式使用 set transaction isolation level 語句。

adoado 應用程式將connection物件的isolationlevel屬性設定為 adxactreaduncommitted、adxactreadcommitted、adxactrepeatableread 或 adxactreadserializable。

ole db

ole db 應用程式呼叫itransactionlocal::starttransaction,其中 isolevel 設定為 isolationlevel_readuncommitted、isolationlevel_readcommitted、isolationlevel_repeatableread 或 isolationlevel_serializable。

odbc

odbc 應用程式呼叫sqlsetconnectattr,其中 attribute 設定為 sql_attr_txn_isolation,valueptr 設定為 sql_txn_read_uncommitted、sql_txn_read_committed、sql_txn_repeatable_read 或 sql_txn_serializable。

事務隔離級別

1 serializable 最嚴格的spring事務隔離級別,事務序列執行,資源消耗最大 3 read committed 大多數主流資料庫的預設spring事務隔離等級,保證了乙個事務不會讀到另乙個並行事務已修改但未提交的資料,避免了 髒讀取 該級別適用於大多數系統。4 read uncommi...

事務隔離級別

四種隔離級別 隔離級別 髒 讀不可重複讀取 幻 像讀操作未提交 read uncommitted 是是 是讀操作已提交 read committed 否是 是可重複讀 repeatable read 否否 是快照否否 否可序列讀 serializable 否否 否 sql server 還支援使用行...

事務隔離級別

需要防止的現象和事務隔離級別 ansi iso sql 標準 sql92 定義了四種事務隔離級別 transaction isolation level 這四種隔離級別所能提供的事務處理能力各不相同。這些事務隔離級別是針對三種現象定義的,在併發事務執行時,需要阻止這三種現象 中的一種或多種發生。三種...