• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      SQL SERVER中的事務(wù)處理教學(xué)研究

      2014-11-19 18:50張勝
      電腦知識與技術(shù) 2014年30期
      關(guān)鍵詞:事務(wù)

      張勝

      摘要:數(shù)據(jù)庫中的事務(wù)處理是數(shù)據(jù)庫教學(xué)的重點內(nèi)容,該文結(jié)合SQL Server數(shù)據(jù)庫對 其特性,執(zhí)行,編寫規(guī)則等做了概括論述,并結(jié)合教學(xué)實踐,對相關(guān)注意事項做了簡要說明,這對于如何學(xué)好該知識點具備一定指導(dǎo)意義。

      關(guān)鍵詞:SQL SERVER; 事務(wù); 鎖

      中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)30-7017-02

      事務(wù)的作用是保證一系列的數(shù)據(jù)操作可以全部正確完成,不會造成數(shù)據(jù)操作到中途未完成而導(dǎo)致數(shù)據(jù)完整性出錯,鎖的作用是保證數(shù)據(jù)在操作過程中不會受到任何其他影響,事務(wù)和鎖都是數(shù)據(jù)庫中的重要功能,這里將結(jié)合SQL SERVER數(shù)據(jù)庫談?wù)勈聞?wù)處理部分內(nèi)容。

      1 事務(wù)的特性

      事務(wù)是作為單個邏輯工作單元執(zhí)行的一系列工作有下列四個屬性:

      原子性:事務(wù)必須是原子性的工作單元,對事務(wù)里的操作,要么全都執(zhí)行,要么全不執(zhí)行。

      一致性:事務(wù)完成時,必須使所有數(shù)據(jù)都保持一致狀態(tài),所有規(guī)則都必須應(yīng)用于事務(wù)的修改。

      隔離性:由并發(fā)事務(wù)所做的修改必須與其他并發(fā)事務(wù)所做的修改隔離,事務(wù)在開始時就會識別數(shù)據(jù)所處的狀態(tài),以便發(fā)生錯誤時回滾操作,所以另一個并發(fā)事務(wù)要么修改它之前的狀態(tài),要么修改他之后的狀態(tài),不能在該事物正在運行時去修改他的狀態(tài)。

      持久性:在事務(wù)完成后,其操作結(jié)果對于系統(tǒng)的影響應(yīng)該是永久的。

      2 執(zhí)行事務(wù)的注意事項

      1) 在每個操作之后,都要檢查@@ERROR和@@ROWCOUNT的值。

      因為@@ERROR只對當(dāng)前操作有小,當(dāng)進行第二個操作時,@@ERROR的值就會被第二個操作的值取代。@@ROWCOUNT的作用是判斷該操作影響了多少條記錄,當(dāng)使用UPDATE或DELETE進行更新或刪除操作時,若沒有符合條件的記錄,那么其所影響的記錄數(shù)為0,但并不出錯,所以@@ERROR的值也為0.因此,還要檢查@@ROWCOUNT的值,以確定操作是否成功。

      2) 當(dāng)一個事務(wù)結(jié)束后,緊跟在事務(wù)之后的代碼還可以繼續(xù)執(zhí)行,但出錯后不能再回滾事務(wù)了。

      3) 已經(jīng)提交完畢的事務(wù)會將數(shù)據(jù)寫入數(shù)據(jù)庫,此時也不能回滾事務(wù)。

      4) 在每個事務(wù)正在執(zhí)行時,若發(fā)生斷電等意外,則在下次重啟系統(tǒng)后,該事務(wù)會自動回滾。

      5) 無法回滾的語句不能在事務(wù)中使用,如:create database、alter database等。

      3 事務(wù)的工作原理

      事務(wù)在開始時,SQL SERVER就會將要修改的數(shù)據(jù)鎖定,同時創(chuàng)建一個臨時事務(wù)日志,在該日志里存放要更改的數(shù)據(jù)和更改的過程。事務(wù)未提交時,事務(wù)中所有數(shù)據(jù)操作是臨時的,一旦發(fā)生數(shù)據(jù)操作失敗,就是用臨時日志去回滾事務(wù)操作,并解除鎖定。在事務(wù)被成功提交后,數(shù)據(jù)庫九江臨時事務(wù)日志的內(nèi)容存儲到數(shù)據(jù)庫中,此時事務(wù)操作完成。

      4 事務(wù)執(zhí)行的模式

      顯式事務(wù):明確定義事務(wù)開始和結(jié)束的事務(wù)。

      自動提交事務(wù):這是SQL SERVER DATABASE ENGINE的默認事務(wù)方式,每一個T-SQL語句都可以看成一個自動提交事務(wù)。

      隱式事務(wù):當(dāng)執(zhí)行“SET IMPLICIT_TRANSACTIONS ON”語句后,SQL SERVER將會進入隱式事務(wù)模式,系統(tǒng)將在提交或回滾當(dāng)前事務(wù)后自動啟動新的事物,不需要再次定義事務(wù)的開始,隱式事務(wù)產(chǎn)生的是一個連續(xù)的事務(wù)序列。

      5 編寫事務(wù)的規(guī)則

      1) 事務(wù)要盡可能簡短

      事務(wù)在啟動后,DBMS會在事務(wù)結(jié)束前保留很多資源,以保證事務(wù)的ACID性質(zhì),若在事務(wù)里還要修改數(shù)據(jù),數(shù)據(jù)管理系統(tǒng)還會使用鎖來保護修改過的行,其他事務(wù)此時不能對這些行進行控制,直至事務(wù)結(jié)束,在多用戶系統(tǒng)里,這種過大資源的占有和過長時間的鎖定,是不可忍受的。

      2) 在事務(wù)中訪問的數(shù)據(jù)量要盡量少。

      這也是基于事務(wù)會對數(shù)據(jù)加鎖的理由。

      3) 在事務(wù)處理期間盡量不要請求用戶輸入

      在事務(wù)處理過程中,如果還要等待用戶輸入,事務(wù)占用的所有資源都會保留相當(dāng)長時間,會造成阻塞。

      6 事務(wù)的隔離級別

      事務(wù)具有隔離性,在同一時間可以有多個事務(wù)處理數(shù)據(jù),但每個數(shù)據(jù)在同一時刻只能有一個事務(wù)操作,將數(shù)據(jù)鎖定可以防止其他事務(wù)影響當(dāng)前事務(wù)操作的數(shù)據(jù),但會影響數(shù)據(jù)庫使用效率。甚至造成死鎖。事務(wù)隔離級別是用來設(shè)置事務(wù)在讀取數(shù)據(jù)時的隔離狀態(tài),從而提高數(shù)據(jù)并發(fā)使用效率的一種手段,SQL SERVER中事務(wù)隔離級別由低到高可分為5個級別。

      Read Uncommitted:不隔離數(shù)據(jù),即使在事務(wù)正在使用數(shù)據(jù)的同時,其他事務(wù)也能同時修改或刪除該數(shù)據(jù)。Read Committed:不允許讀取沒有提交的數(shù)據(jù),這是SQL SERVER的默認隔離級別,由于事務(wù)還沒有提交,數(shù)據(jù)被修改的可能性還很大。REPEATABLE READ:在事務(wù)中鎖定所讀取的數(shù)據(jù)不讓其他程序修改或刪除,如此可以保證在事務(wù)中每次讀取到的數(shù)據(jù)都一致,其他事務(wù)可以在該數(shù)據(jù)表中新增數(shù)據(jù)。Snapshot:快照隔離,可以為讀取數(shù)據(jù)的事務(wù)提供所需數(shù)據(jù)的一個已提交版本,因此寫入數(shù)據(jù)的事務(wù)不會阻塞讀取數(shù)據(jù)的事務(wù)。Serializable:將事務(wù)所要用到的數(shù)據(jù)表全部鎖定。

      7 小結(jié)

      本文總結(jié)了在SQL SERVER中事務(wù)處理的基本原理和使用注意事項,對于使用SQL SERVER進行數(shù)據(jù)庫教學(xué)的教師具有一定的參考價值。

      參考文獻:

      [1] 朱如龍. SQL Server2005數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)技術(shù)[M].北京:機械工業(yè)出版社,2006.

      [2] 尹志宇. 數(shù)據(jù)庫原理與應(yīng)用教程[M]. 北京:清華大學(xué)出版社,2013.

      [3] Ramez Eimasri. 數(shù)據(jù)庫系統(tǒng)基礎(chǔ)[M]. 北京:人民郵電出版社, 2009.endprint

      猜你喜歡
      事務(wù)
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計與實現(xiàn)
      河湖事務(wù)
      SQLServer自治事務(wù)實現(xiàn)方案探析
      移動實時環(huán)境下的數(shù)據(jù)一致性研究
      景洪市| 临城县| 江西省| 宽甸| 庐江县| 长泰县| 兴城市| 安平县| 德清县| 湘潭县| 措勤县| 东辽县| 从江县| 澳门| 丰顺县| 收藏| 苏尼特左旗| 湘阴县| 上高县| 平安县| 年辖:市辖区| 南丰县| 连南| 云林县| 长垣县| 长武县| 九寨沟县| 江华| 榕江县| 定襄县| 南安市| 仲巴县| 丹凤县| 长兴县| 景宁| 渝中区| 萍乡市| 东明县| 平舆县| 长沙市| 宝兴县|