回覆列表
  • 1 # 使用者1844319796352

    多使用者都用事務同時訪問同一個資料資源的情況下,就會造成以下四種資料錯誤:

    1、更新丟失:多個使用者同時對一個數據資源進行更新,必定會產生被覆蓋的資料,造成資料讀寫異常。

    2、不可重複讀:如果一個使用者在一個事務中多次讀取一條資料,而另外一個使用者則同時更新啦這條資料,造成第一個使用者多次讀取資料不一致。

    3、髒讀:第一個事務讀取第二個事務正在更新的資料表,如果第二個事務還沒有更新完成,那麼第一個事務讀取的資料將是一半為更新過的,一半還沒更新過的資料,這樣的資料毫無意義。

    4、幻讀:第一個事務讀取一個結果集後,第二個事務,對這個結果集經行增刪操作,然而第一個事務中再次對這個結果集進行查詢時,資料發現丟失或新增。

    為了解決這類問題,資料管理系統就設定了各種鎖,鎖的存在使得一個事務對他自己的資料塊進行操作的時候,而另外一個事務則不能插足這些資料塊。這就是所謂的鎖定。

    以Sql server 為例,鎖定從資料庫系統的角度大致可以分為6種:

    共享鎖(S):還可以叫他讀鎖。可以併發讀取資料,但不能修改資料。也就是說當資料資源上存在共享鎖的時候,所有的事務都不能對這個資源進行修改,直到資料讀取完成,共享鎖釋放。

    排它鎖(X):還可以叫他獨佔鎖、寫鎖。就是如果你對資料資源進行增刪改操作時,不允許其它任何事務操作這塊資源,直到排它鎖被釋放,防止同時對同一資源進行多重操作。

    更新鎖(U):防止出現死鎖的鎖模式,兩個事務對一個數據資源進行先讀取在修改的情況下,使用共享鎖和排它鎖有時會出現死鎖現象,而使用更新鎖則可以避免死鎖的出現。資源的更新鎖一次只能分配給一個事務,如果需要對資源進行修改,更新鎖會變成排他鎖,否則變為共享鎖。

    意向鎖:SQL Server需要在層次結構中的底層資源上(如行,列)獲取共享鎖,排它鎖,更新鎖。例如表級放置了意向共享鎖,就表示事務要對錶的頁或行上使用共享鎖。在表的某一行上上放置意向鎖,可以防止其它事務獲取其它不相容的的鎖。意向鎖可以提高效能,因為資料引擎不需要檢測資源的每一列每一行,就能判斷是否可以獲取到該資源的相容鎖。意向鎖包括三種類型:意向共享鎖(IS),意向排他鎖(IX),意向排他共享鎖(SIX)。

    架構鎖:防止修改表結構時,併發訪問的鎖。

    大容量更新鎖:允許多個執行緒將大容量資料併發的插入到同一個表中,在載入的同時,不允許其它程序訪問該表

  • 2 # 使用者1844319796352

    多使用者都用事務同時訪問同一個資料資源的情況下,就會造成以下四種資料錯誤:

    1、更新丟失:多個使用者同時對一個數據資源進行更新,必定會產生被覆蓋的資料,造成資料讀寫異常。

    2、不可重複讀:如果一個使用者在一個事務中多次讀取一條資料,而另外一個使用者則同時更新啦這條資料,造成第一個使用者多次讀取資料不一致。

    3、髒讀:第一個事務讀取第二個事務正在更新的資料表,如果第二個事務還沒有更新完成,那麼第一個事務讀取的資料將是一半為更新過的,一半還沒更新過的資料,這樣的資料毫無意義。

    4、幻讀:第一個事務讀取一個結果集後,第二個事務,對這個結果集經行增刪操作,然而第一個事務中再次對這個結果集進行查詢時,資料發現丟失或新增。

    為了解決這類問題,資料管理系統就設定了各種鎖,鎖的存在使得一個事務對他自己的資料塊進行操作的時候,而另外一個事務則不能插足這些資料塊。這就是所謂的鎖定。

    以Sql server 為例,鎖定從資料庫系統的角度大致可以分為6種:

    共享鎖(S):還可以叫他讀鎖。可以併發讀取資料,但不能修改資料。也就是說當資料資源上存在共享鎖的時候,所有的事務都不能對這個資源進行修改,直到資料讀取完成,共享鎖釋放。

    排它鎖(X):還可以叫他獨佔鎖、寫鎖。就是如果你對資料資源進行增刪改操作時,不允許其它任何事務操作這塊資源,直到排它鎖被釋放,防止同時對同一資源進行多重操作。

    更新鎖(U):防止出現死鎖的鎖模式,兩個事務對一個數據資源進行先讀取在修改的情況下,使用共享鎖和排它鎖有時會出現死鎖現象,而使用更新鎖則可以避免死鎖的出現。資源的更新鎖一次只能分配給一個事務,如果需要對資源進行修改,更新鎖會變成排他鎖,否則變為共享鎖。

    意向鎖:SQL Server需要在層次結構中的底層資源上(如行,列)獲取共享鎖,排它鎖,更新鎖。例如表級放置了意向共享鎖,就表示事務要對錶的頁或行上使用共享鎖。在表的某一行上上放置意向鎖,可以防止其它事務獲取其它不相容的的鎖。意向鎖可以提高效能,因為資料引擎不需要檢測資源的每一列每一行,就能判斷是否可以獲取到該資源的相容鎖。意向鎖包括三種類型:意向共享鎖(IS),意向排他鎖(IX),意向排他共享鎖(SIX)。

    架構鎖:防止修改表結構時,併發訪問的鎖。

    大容量更新鎖:允許多個執行緒將大容量資料併發的插入到同一個表中,在載入的同時,不允許其它程序訪問該表

  • 中秋節和大豐收的關聯?
  • 女朋友跟大叔跑了是為什麼?難道只是因為他的錢嗎?應該怎麼追回來?