Microsoft 會為一個可下載的檔案散佈 Microsoft SQL Server 2008年的修正程式。的修正程式是累積的因為每個新版本包含的所有 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。
狀況
請考慮下列案例。在 Microsoft SQL Server 2008年資料庫中,就會發生死結。然後,您可以使用system_health延伸事件工作階段擷取死結圖形。在這個案例中,您會收到下列錯誤訊息︰
訊息 9436,層次 16,狀態 1,行 1
XML 剖析︰ 行 54,字元 12,結束標記與開始標記不相符
比方說,您可以執行下列查詢從發生死結的system_health工作階段匯出 buffer_ring 目標︰
select XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as DeadlockGraphFROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'
在這個範例中,查詢會傳回正確的結果。
不過,您也可以執行下列查詢,以 XML 格式時,施展此死結圖形︰
select cast(XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as xml) as DeadlockGraphFROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'
在此情況下,您會看到以 XML 格式的死結圖形。即使死結圖表顯示不正確,您仍然要查看來自 xml_deadlock_report 報表的內容有效的 XML。然而,您會收到下列錯誤訊息︰
訊息 9436,層次 16,狀態 1,行 1
XML 剖析︰ 行 54,字元 12,結束標記與開始標記不相符
原因
之所以發生這個問題,是因為會產生死結 graph 的 XML 結構描述的程式碼路徑會略過受害者清單項目的結尾標記。此外,程式碼路徑會新增死結元件不必要的標籤。
解決方案
SQL Server 2008 Service Pack 1 的第一次這個問題的修正程式釋放累積的更新 6] 中。如需有關此累積更新套件的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
977443累計更新套件 6,SQL Server 2008 Service Pack 1注意因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,並隨附於先前的 SQL Server 2008年所有安全性修正程式會都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
SQL Server 2008年建置 SQL Server 2008 Service Pack 1 發行之後所發行的970365
Microsoft SQL Server 2008 hotfix 會建立特定的 SQL Server service pack。您必須將 SQL Server 2008 Service Pack 1 hotfix 套用至的 SQL Server 2008 Service Pack 1 安裝。根據預設,SQL Server service pack 中所提供的任何 hotfix 併入下一步的 SQL Server service pack。
SQL Server 2008 R2
重要如果您執行 SQL Server 2008 R2,您必須安裝此修正程式。
這個問題的修正程式首次發表中累積的更新 1。如需有關如何取得此累積更新套件的 SQL Server 2008 R2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
SQL Server 2008 R2 的981355累積更新套件 1注意因為組建是累計的每個新的修正程式版本會包含所有的 hotfix,和先前的 SQL Server 2008 R2 隨附的所有安全性修正都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
SQL Server 2008 R2 建置 SQL Server 2008 R2 發行之後所發行的981356
狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
參考
SQL Server 增量的服務模型的相關資訊,如按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
935897的累加式服務模型可以使用從 SQL Server 小組製作報告的問題的 hotfix
如需有關 SQL Server 更新的命名結構描述的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰
822499新命名的結構描述為 Microsoft SQL Server 軟體更新套件的
如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
用來描述 Microsoft 軟體更新標準術語的編號 824684描述