0
我有一個模式綁定視圖(SSMS 2008 R2)運行在由前端應用程序維護和更新的一組表上。本週早些時候,在部署更新應用程序之後,儘管在開發階段通過成功運行,每次在Prod中運行時,視圖突然死鎖 - 受害者。VIEW通過應用程序端命令反覆死鎖
運行跟蹤並抓取死鎖圖形顯示競爭的DELETE語句來自應用程序(它不更新記錄,而是刪除和插入)。
編輯1:死鎖是由與IX級鎖定競爭的應用程序端命令引起的。 VIEW發行S級鎖,但競爭性命令繼續死鎖,VIEW查詢一直是受害者進程。將隔離設置爲'read uncommitted'不能解決問題。
VIEW多次在同一個表上遞歸地外連接以創建記錄的鏈接歷史記錄。我懷疑這是使VIEW過於複雜以避免鎖定時間的功能。它似乎工作了半天,然後會一直陷入僵局。
這是一個簡單的能力問題,還是有更好的方法來構建報告結構來彌補死鎖問題?
這裏有太多的揮手,向我們展示代碼。從視圖定義開始,然後定義支持表及其索引/鍵。 – RBarryYoung