奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

SQL

sql server中避免死鎖的方法

時間:2024-06-18 10:13:53 SQL 我要投稿
  • 相關推薦

sql server中避免死鎖的方法

  一、死鎖的四個必要條件

  1、互斥條件(Mutual exclusion):資源不能被共享,只能由一個進程使用。

  2、請求與保持條件(Hold and wait):已經得到資源的進程可以再次申請新的資源。

  3、非剝奪條件(No pre-emption):已經分配的資源不能從相應的進程中被強制地剝奪。

  4、循環等待條件(Circular wait):系統中若干進程組成環路,該環路中每個進程都在等待相鄰進程正占用的資源。

  二、 避免死鎖

  1、按同一順序訪問對象

  如果所有并發事務按同一順序訪問對象,則發生死鎖的可能性會降低。例如,如果兩個并發事務獲得 Supplier 表上的鎖,然后獲得 Part 表上的鎖,則在其中一個事務完成之前,另一個事務被阻塞在 Supplier 表上。第一個事務提交或回滾后,第二個事務繼續進行。不發生死鎖。將存儲過程用于所有的數據修改可以標準化訪問對象的順序。

  2、避免事務中的用戶交互

  避免編寫包含用戶交互的事務,因為運行沒有用戶交互的批處理的速度要遠遠快于用戶手動響應查詢的速度,例如答復應用程序請求參數的提示。例如,如果事務正在等待用戶輸入,而用戶去吃午餐了或者甚至回家過周末了,則用戶將此事務掛起使之不能完成。這樣將降低系統的吞吐量,因為事務持有的任何鎖只有在事務提交或回滾時才會釋放。即使不出現死鎖的情況,訪問同一資源的其它事務也會被阻塞,等待該事務完成。

  3、保持事務簡短并在一個批處理中

  在同一數據庫中并發執行多個需要長時間運行的事務時通常發生死鎖。事務運行時間越長,其持有排它鎖或更新鎖的時間也就越長,從而堵塞了其它活動并可能導致死鎖。

  保持事務在一個批處理中,可以最小化事務的網絡通信往返量,減少完成事務可能的延遲并釋放鎖。

  4、使用低隔離級別

  確定事務是否能在更低的隔離級別上運行。執行提交讀允許事務讀取另一個事務已讀取(未修改)的數據,而不必等待第一個事務完成。使用較低的隔離級別(例如提交讀)而不使用較高的隔離級別(例如可串行讀)可以縮短持有共享鎖的時間,從而降低了鎖定爭奪。

  5、使用綁定連接

  使用綁定連接使同一應用程序所打開的兩個或多個連接可以相互合作。次級連接所獲得的任何鎖可以象由主連接獲得的鎖那樣持有,反之亦然,因此不會相互阻塞

  6、SELECT語句加With(NoLock)提示

  默認情況下SELECT語句會對查詢到的資源加S鎖(共享鎖),S鎖與X鎖(排他鎖)不兼容;但加上With(NoLock)后,SELECT不對查詢到的資源加鎖(或者加Sch-S鎖,Sch-S鎖可以與任何鎖兼容);從而可以是這兩條SQL可以并發地訪問同一資源。當然,此方法適合解決讀與寫并發死鎖的情況,但加With(NoLock)可能會導致臟讀。

【sql server中避免死鎖的方法】相關文章:

硬盤循環死鎖故障方法介紹07-16

MySQL導出導入SQL文件命令方法06-29

中考避免粗心的五種方法09-22

避免麥克風嘯叫的方法與技巧07-02

sql語法大全03-23

Sql認證考試內容06-08

Excel中if函數使用的方法06-16

音樂中節奏的訓練方法06-20

沖突管理中的有效溝通方法05-05

在Word文檔中給文章段落分欄的方法11-10

主站蜘蛛池模板: 衡阳县| 桂东县| 石棉县| 肃宁县| 巨鹿县| 蒲城县| 江安县| 瑞昌市| 宁晋县| 合江县| 揭西县| 江安县| 大连市| 天柱县| 南召县| 蕲春县| 南丹县| 泾阳县| 通辽市| 合作市| 富平县| 宁城县| 三亚市| 观塘区| 隆回县| 尚义县| 顺平县| 新巴尔虎左旗| 商城县| 黄浦区| 台南县| 台山市| 肃宁县| 赣榆县| 邳州市| 中方县| 陈巴尔虎旗| 武功县| 凌云县| 女性| 老河口市|