SQL Server中的一些概念

來源:互聯網
上載者:User
  1. Transaction及錯誤檢查
    • SQL Server 中最重要的知識點莫過於事務,比如很多OLTP(聯機交易處理)應用程式。什麼是事務?事務就是一系列SQL語句的集合。事務包括隱性事務(例如Insert,Update等語句)和顯性事務(用Begin Tran語句顯式指明的事務)。事務中通常需要進行錯誤檢查,用@@error來進行檢查,比如:Begin Tran
         Update A set id =5 where id=1
         If @@error<>0 
         rollback Tran   Update A set id =5 where id=2
         If @@error<>0
      rollback Tran
      Commit Tran
  2. Lock (鎖)
    • 按鎖的粒度分,鎖可以分成如下幾類:
      Key Lock(鍵鎖)--->Row Lock(行級鎖)--->Page Lock(頁級鎖)--->Extent Lock(擴充盤曲鎖)--->Table Lock(表鎖)--->Database Lock(資料庫鎖)
    • 按鎖的模式分,鎖可以分為如下幾類:
      holdlock(共用鎖定),xlock(排它鎖),Updlock(更新鎖定),Schlock(架構鎖),Intent lock(意圖鎖定)等等。如果要查看鎖的類型,使用系統預存程序sys_lock來查看。
  3. Isolation level (隔離等級)
    • 事務有4中隔離等級,分別為:
      1. read uncommitted(未提交讀) --- 讀未提交,可以讀取到記憶體中已經修改但是沒有儲存到硬碟上的資訊,即允許資料髒讀。
      2. read committed(提交讀) --- 讀提交,只能讀取到已經提交到硬碟的資訊,如果資訊在記憶體中修改了,但是還沒有提交到硬碟,即沒有commit tran,則另一個事務什麼也讀取不到,被另一事物阻塞在此。當修改資料的事務一旦commit tran,則讀取資料的事務立即運行,修改後的資料被讀取到。
      3. repeatable read(重複讀) --- 當事務A設定隔離等級為repeatable read在對資料進行讀取,此時,事務B來修改資料,由於repeatable read隔離等級對操作的實體(行或者表)設定了更新鎖定,所以此時事務B不能對資料進行更新,但是事務B可以insert新資料,因為repeatable read隔離等級對操作的實體(行或者表)沒有設定排它鎖,所以事務A可以讀取到幻象。
      4. serializable(串列讀) --- 序列化,即事務一個接一個地進行操作,包括對操作實體的update,insert,select等等。
    • 實際上隔離等級和鎖的關係是密不可分的,隔離等級的實現本質上是對鎖來進行操作,由於我們在操作一個實體物件的時候不能準確地判斷到底應該上什麼具體的鎖 ,所以鑒於此,SQL server資料庫為我們開闢了一個簡單的途徑,即使用隔離等級。實體的隔離等級越高,說明實體上鎖的數量越多,種類越複雜;實體的隔離等級越高,並行化的幾率越低,序列化的幾率越高。
  4. Save Point(儲存點)
    • 儲存點的出現,是為了在事務恢複時更加地迅速和容易,因為不用把所有的操作都恢複,而是只用恢複到儲存點即可,關於如何恢複以及更具體的知識,會在事務的恢複部落格中詳述。舉個簡單的例子:Begin Tran
         Update A set id =4 where id=1 
         Save tran t1
         Update A set id =3 where id=2
         If @@error<>0
      rollback t1
         Update A set id=5 where id =3
      Commit Tran
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.