Share via


設定交易隔離等級

應用程式會用 SQL_ATTR_TXN_ISOLATION 連線屬性設定交易隔離等級。 如果資料來源不支援所要求的隔離等級,則驅動程式或資料來源可設定更高的等級。 應用程式會分別呼叫 SQLGetInfo 的 SQL_TXN_ISOLATION_OPTION 和 SQL_DEFAULT_TXN_ISOLATION 選項,以判斷資料來源支援的交易隔離等級和預設的隔離等級。

較高的交易隔離等級能為資料庫資料的完整性提供最多保護。 可序列化的交易可保證不受其他交易影響,因此絕對能維持資料完整性。

不過,較高的交易隔離等級會導致效能減慢,因為這會增加應用程式等候系統釋放已鎖定資料的機會。 應用程式可指定較低的隔離等級,藉此提升以下案例中的效能:

  • 保證不存在可能干擾應用程式交易的其他交易時。 這個狀況只有在少數情況下才會發生,例如小公司內有人用一台電腦維護包含人員資料的 dBASE 檔案,且不分享這些檔案。

  • 重視速度過於正確性,且錯誤可能不嚴重時。 例如,假設一間公司有許多小規模銷售,鮮少有大規模的銷售出現。 預估所有已開啟銷售總值的交易也許能安全地使用 [讀取未認可] 隔離等級。 雖然交易會納入已開啟或關閉並隨即復原的訂單,但這類訂單通常會自行取消並使交易速度大幅提升,因為系統每次處理這類訂單時不會加以封鎖。

如需更多資訊,請參閱開放式同步存取