SQL SERVER 阻塞與死鎖.ppt_第1頁
SQL SERVER 阻塞與死鎖.ppt_第2頁
SQL SERVER 阻塞與死鎖.ppt_第3頁
SQL SERVER 阻塞與死鎖.ppt_第4頁
SQL SERVER 阻塞與死鎖.ppt_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

SQLServer2008新特征 阻塞與死鎖 DBA 內容 DBA 事務 事務 單個工作單元執(zhí)行的一些列操作 事務的屬性 A 原子性 Atomicity 全做或全不做C 一致性 Consistency 多個事務對data訪問間不沖突I 隔離性 Isolation 用鎖進行隔離D 持久性 Durability 運行模式 自動提交事務 每個語句一個事務顯示事務BEGINTRANCOMMITTRANROLLBACKTRAN隱示事務 DBA 并發(fā) 并發(fā) 多用戶同時對一種資源進行訪問并發(fā)影響 并發(fā)控制 A的修改不會對B做的修改產生負面影響悲觀并發(fā)控制 加鎖成本rollback隔離級別 DBA 隔離級別 定義一個事務必須與其他事務所進行的資源或數(shù)據(jù)更改相隔離的程度隔離級別 DBA 鎖定 locking 概念 LOCK 事務獲取的一種控制資源 保護數(shù)據(jù) 防止其他事務對數(shù)據(jù)進行沖突的或不兼容的訪問 可鎖定資源鎖模式鎖兼容性自定義鎖定鎖升級 細粒度的鎖升級為粗粒度的鎖 SQLServer2008可以用LOCK ESCALATION顯示禁止鎖升級 DBA 可鎖定資源 DBA 鎖模式 lockmode DBA 鎖兼容性 控制多個事務能否同時獲取一個資源上的鎖 兼容時才能獲得 DBA 阻塞 blocking 概念前提 一事務持有數(shù)據(jù)資源上的鎖動作 另一事務請求相同資源上的不兼容鎖后果 新的鎖請求被阻塞 請求等待至鎖被釋放實例 Connection1 獲得某行的排他鎖Connection2 申請同一行的共享鎖 DBA 檢測阻塞 1 SP WHO SP LOCK DBA 檢測阻塞 2 SYS DM TRAN LOCKSSELECTrequest session idas 服務器進程標識符 resource typeas 被鎖定資源類型 request modeas 鎖模式 request statusas 請求狀態(tài) FROMsys dm tran locks DBA 檢測阻塞 3 Othersys dm exec connections 阻塞鏈中進程相關聯(lián)接信息 可了解聯(lián)接中最后讀寫的時間及SQL語句select fromsys dm exec connectionsCROSSAPPLYsys dm exec sql text most recent sql handle asSTwheresession idIN 55 56 sys dm exec sessions 查詢阻塞中涉及的會話 sys dm exec requests 活動請求信息 DBA 終止和避免阻塞 KillSETLOCK TIMEOUTtimeout period DBA 死鎖 DBA 概念 多任務中 每個任務鎖定了其他任務試圖鎖定的資源 導致的任務永久阻塞 例子 CREATETABLETable1 Col1intdefault 0 CREATETABLETable2 Col1intdefault 0 INSERTINTOTable1VALUES 1 INSERTINTOTable2VALUES 1 BeginTranUpdateTable1SetCol1 Col1 1 WaitForDelay 00 01 00 SELECT FROMTable2RollbackTran BeginTranUpdateTable2SetCol1 Col1 1 WaitForDelay 00 01 00 SELECT FROMTable1RollbackTran 死鎖檢測與查看 DBA 死鎖檢測 鎖監(jiān)視線程 定期搜索數(shù)據(jù)庫引擎實例的所有任務 檢測到死鎖后線程選擇一個死鎖犧牲品來結束死鎖 死鎖犧牲品的事務以1025錯誤返回到應有程序并釋放事務持有的鎖 默認選擇回滾開銷最小的會話作為犧牲品 DEADLOCK PRIOPRTY低的死鎖被犧牲 死鎖查看工具 1024 報告死鎖涉及的每個節(jié)點設置格式信息 1222 設置死鎖信息的格式 先進程后資源 事件探查器死鎖圖形事件 降低死鎖的方法 DBA 按同一順序訪問對象 注 避免出現(xiàn)循環(huán) 避免事務中的用戶交互 注 減少持有資源的時間 較少鎖競爭 保持事務簡短并處于一個批處理中 注 同 2 減少持有資源的時間 使用較低的隔離級別 使用較低隔離級別比使用高隔離級別持有共享鎖的時間更短 使用基于行版本控制的隔離級別READ COMMITTED SNAPSHOT設置為ON 讀操作為行版本控制而不是共享鎖ALLOW SNAPSHOT ISOLATION設置為ON 快照隔離也使用行版本控制使用綁定連接 死鎖處理 DBA 方法一 EXECsp whoactive看哪個引起的阻塞 blk 53 或者execsp lock看哪個spid處于wait狀態(tài) 通過killspid干掉相關進程 方法二 設定鎖超時 SELECT LOCK TIMEOUTSETLOCK TIMEOUT5000SQLServer內部有一個鎖監(jiān)視器線程執(zhí)行死鎖檢查自動處理 在select語句上加表級鎖WITH nolock 此方法有可能導致臟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論