共用方式為


並發類型

為了解決游標並行減少的問題,ODBC 揭示了四種不同類型的游標並行:

  • 唯讀 游標可以讀取資料,但無法更新或刪除資料。 這是預設的並行類型。 雖然資料庫管理系統可能會鎖定列以強制執行可重複讀取與可序列化隔離層級,但它可以使用讀取鎖代替寫鎖。 這導致更高的並行性,因為其他交易至少能讀取資料。

  • 鎖定 游標使用最低層級的鎖定,以確保能更新或刪除結果集中的列。 這通常會導致非常低的並行水準,尤其是在可重複讀取與可序列化交易隔離層級。

  • 使用列版本的樂觀並行與使用值的樂觀並行 游標採用樂觀並行:只有在資料列自上次讀取以來未改變時,才會更新或刪除。 為了偵測變更,它會比較列版本或數值。 游標無法保證能更新或刪除某一列,但並行性遠高於鎖定時。 欲了解更多資訊,請參閱以下章節「 樂觀並行性」。

應用程式會指定它希望游標使用哪種類型的並行性,並搭配 SQL_ATTR_CONCURRENCY 陳述句屬性。 為了判斷支援哪些類型,它會呼叫 SQLGetInfo 並選擇 SQL_SCROLL_CONCURRENCY。