日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MSSQL事务开发指南

發布時間:2025/5/22 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MSSQL事务开发指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

了解事務
?事務是作為單個邏輯工作單元執行的一系列操作。可以是一條SQL語句也可以是多條SQL語句。
?事務具有四個特性
??原子性:不可分隔、成則具成、敗則具敗。
??一致性:事務在完成時,必須使所有的數據都保持一致狀態
??隔離性:獨立的執行互不干擾。由并發事務所作的修改必須與任何其他并發事務所作的修改隔離。
??持久性:務完成之后,它對于系統的影響是永久性的。該修改即使出現系統故障也將一直保持。
?應用程序主要通過指定事務啟動和結束的時間來控制事務。
?啟動事務:使用 API 函數和 Transact-SQL 語句,可以按顯式、自動提交或隱式的方式來啟動事務。
?結束事務:您可以使用 COMMIT(成功) 或 ROLLBACK(失敗) 語句,或者通過 API 函數來結束事務。
?事務模式分為:顯示事務模式、隱式事務模式、自動事務模式。在SQL常用的是顯示模式。
?事務并發處理會產生的問題:
??1,丟失更新?
??當兩個或多個事務選擇同一行,然后基于最初選定的值更新該行時,會發生丟失更新問題。?
??每個事務都不知道其它事務的存在。最后的更新將重寫由其它事務所做的更新,這將導致數據丟失。 ??
??2,臟讀?
??當第二個事務選擇其它事務正在更新的行時,會發生未確認的相關性問題。?
??第二個事務正在讀取的數據還沒有確認并且可能由更新此行的事務所更改。
??3,不可重復讀?
??當第二個事務多次訪問同一行而且每次讀取不同的數據時,會發生不一致的分析問題。?
??不一致的分析與未確認的相關性類似,因為其它事務也是正在更改第二個事務正在讀取的數據。?
??然而,在不一致的分析中,第二個事務讀取的數據是由已進行了更改的事務提交的。而且,不一致的分析涉及多次(兩次或更多)讀取同一行,而且每次信息都由其它事務更改;因而該行被非重復讀取。?
??4,幻像讀?
??當對某行執行插入或刪除操作,而該行屬于某個事務正在讀取的行的范圍時,會發生幻像讀問題。?
??事務第一次讀的行范圍顯示出其中一行已不復存在于第二次讀或后續讀中,因為該行已被其它事務刪除。同樣,由于其它事務的插入操作,事務的第二次或后續讀顯示有一行已不存在于原始讀中。?
??事務的隔離級別
??該隔離級別定義一個事務必須與其他事務所進行的資源或數據更改相隔離的程度。事務隔離級別控制:
??讀取數據時是否占用鎖以及所請求的鎖類型。
??占用讀取鎖的時間。
??引用其他事務修改的行的讀取操作是否:
???在該行上的排他鎖被釋放之前阻塞其他事務。
???檢索在啟動語句或事務時存在的行的已提交版本。
???讀取未提交的數據修改。
?事務的隔離級別
??SQL語句可以使用SET TRANSACTION ISOLATION LEVEL來設置事務的隔離級別。
??1. Read Uncommitted:最低等級的事務隔離,僅僅保證了讀取過程中不會讀取到非法數據。上訴4種不確定情況均有可能發生。
??2. Read Committed:大多數主流數據庫的默認事務等級,保證了一個事務不會讀到另一個并行事務已修改但未提交的數據,避免了“臟讀取”。該級別適用于大多數系統。
??第一個查詢事務
??SET? TRANSACTION? ISOLATION? LEVEL?? Read Committed
??begin? tran
?? update Cate SET Sname=Sname+'b' where ID=1
?? SELECT * FROM cate where ID=1
?? waitfor? delay? '00:00:6'??
?? rollback? tran??--回滾事務
??select Getdate()
??SELECT * FROM cate where ID=1
??第二個查詢事務
??SET? TRANSACTION? ISOLATION? LEVEL? Read committed?? --把committed換成Read uncommitted可看到“臟讀取”的示例。
??SELECT * FROM cate where ID=1
??select Getdate()
??可以看到使用 Read Committed 成功的避免了“臟讀取”.
??3. Repeatable Read:保證了一個事務不會修改已經由另一個事務讀取但未提交(回滾)的數據。避免了“臟讀取”和“不可重復讀取”的情況,但是帶來了更多的性能損失。
??第一個查詢事務
??SET? TRANSACTION? ISOLATION? LEVEL? Repeatable Read? --?? 把Repeatable Read換成Read committed可以看到“不可重復讀取”的示例
??begin? tran
??SELECT * FROM cate where? ID=33?--第一次讀取數據
?? waitfor? delay? '00:00:6'??
??SELECT * FROM cate where? ID=33?--第二次讀取數據,不可重復讀取
??commit
??第二個查詢事務
??SET? TRANSACTION? ISOLATION? LEVEL? Read committed
??update cate set Sname=Sname+'JD' where ID=33
??SELECT * FROM cate where ID>30
??4. Serializable:最高等級的事務隔離,上面3種不確定情況都將被規避。這個級別將模擬事務的串行執行。
??在第一個查詢窗口執行
??SET? TRANSACTION? ISOLATION? LEVEL? Serializable -- 把Serializable換成Repeatable Read 可看到“幻像讀”的示例
??begin? tran
??SELECT * FROM cate where ID>30?--第一次讀取數據,“幻像讀”的示例
?? waitfor? delay? '00:00:6'?? --延遲6秒讀取
??SELECT * FROM cate where ID>30? --第一次讀取數據
??commit
??第二個查詢事務
??SET? TRANSACTION? ISOLATION? LEVEL? Read committed??
??Delete from cate where ID>33
??SELECT * FROM cate where ID>30??
創建事務

?設置事務級別:SET? TRANSACTION? ISOLATION? LEVEL
?開始事務:begin? tran
?提交事務:COMMIT
?回滾事務:ROLLBACK
?創建事務保存點:SAVE TRANSACTION savepoint_name
?回滾到事務點:ROLLBACK TRANSACTION savepoint_name

創建事務的原則:
盡可能使事務保持簡短很重要,當事務啟動后,數據庫管理系統 (DBMS) 必須在事務結束之前保留很多資源、以保證事務的正確安全執行。
特別是在大量并發的系統中, 保持事務簡短以減少并發 資源鎖定爭奪,將先得更為重要。
?1、事務處理,禁止與用戶交互,在事務開始前完成用戶輸入。
?2、在瀏覽數據時,盡量不要打開事務
?3、盡可能使事務保持簡短。
?4、考慮為只讀查詢使用快照隔離,以減少阻塞。
?5、靈活地使用更低的事務隔離級別。
?6、靈活地使用更低的游標并發選項,例如開放式并發選項。
?7、在事務中盡量使訪問的數據量最小。 ?


總結

以上是生活随笔為你收集整理的MSSQL事务开发指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品66 | 99人人爽 | 国产二级一片内射视频播放 | 日本变态折磨凌虐bdsm在线 | 少妇xxx| 91蝌蚪少妇偷拍 | 亚洲欧洲日韩国产 | 激情av小说 | 国产精品亚洲成在人线 | 久久免费视频网 | 国产精品自拍片 | 天天干天天要 | 91私密视频| 色婷婷成人网 | 五十路息子 | 欧美性生活一级 | 欧美一区二区三区在线观看 | 亚洲欲妇| 激情网站在线观看 | 欧美1区 | 亚洲av永久无码精品国产精品 | 91娇羞白丝网站 | 香蕉91视频 | 欧美成人看片黄a免费看 | 日韩精品网址 | 丁香婷婷综合网 | 福利视频三区 | 30一40一50老女人毛片 | 色在线视频观看 | 喷水视频在线观看 | 免费黄色在线观看 | 亚洲国产欧美在线 | 我们的2018在线观看免费高清 | 国产黄a三级三级三级看三级男男 | 久久国产乱子伦免费精品 | 国产视频一区二区在线观看 | 国产精品麻豆一区二区三区 | 久艹在线观看 | 国产一区二区中文字幕 | 国产一级淫片a视频免费观看 | 欧美精品日韩在线观看 | 玖玖玖视频 | 涩涩资源网| 亚洲视频欧洲视频 | 欧洲成人一区二区三区 | 一曲二曲三曲在线观看中文字幕动漫 | 欧美xxxx喷水| 波多野结衣一区二区三区在线 | 欧美成人午夜77777 | www.国产在线观看 | 黄色正能量网站 | 中国免费看的片 | 狠狠干2017 | 中文字幕观看av | 麻豆精品久久久 | 色伊人av| 国产乱轮视频 | 大学生一级一片全黄 | 欧美久久久久久又粗又大 | 91在线综合 | 日批的视频 | 牛牛在线免费视频 | 国产免费自拍视频 | 日本涩涩视频 | 天天干夜夜怕 | 女优视频在线观看 | av直接看 | 91精品啪在线观看国产线免费 | 一级片中文 | 青青草在线免费 | 男人天堂最新网址 | 中文字幕在线观看你懂的 | 先锋av资源 | 成人免费黄色大片 | av天堂一区二区三区 | 可以看污的网站 | 中国一级片黄色一级片黄 | wwwav在线播放 | 午夜在线看| av日韩国产 | 麻豆视频传媒入口 | 久久久久久久久久久网站 | 麻豆久久精品 | 亚洲视频在线免费播放 | 美女视频黄a视频全免费观看 | jizz成熟丰满日本少妇 | 三级黄色av | 精品无码国产一区二区三区av | youjizz.com最新| 国产精品一区久久 | av网天堂| 综合网视频 | 国产精品日韩电影 | 国产模特av私拍大尺度 | av永久免费在线观看 | 中国亚洲女人69内射少妇 | 福利视频在线看 | 国产午夜性春猛交ⅹxxx | 亚洲理伦电影 |