Abs*_*Web 5 sql-server deadlock extended-events
如何告诉 sql server 在 xml 中记录整个查询,而不是截断它?
例子:
<inputbuf>
(@0 nvarchar(20),@1 nvarchar(10),@2 decimal(38,20),@3 int,@4 datetime,@5 nvarchar(10))IF EXISTS(SELECT TOP 1 NULL FROM "MySQLDB".dbo."MyTable$Reservation Entry" WITH(UPDLOCK) WHERE ("Item No_"=@0 AND "Location Code"=@1 AND "Quantity (Base)">@2 AND "Reservation Status"=@3 AND "Expected Receipt Date"<=@4 AND "Variant Code"=@5)) SELECT "timestamp","Entry No_","Positive","Item No_","Location Code","Quantity (Base)","Reservation Status","Description","Creation Date","Transferred from Entry No_","Source Type","Source Subtype","Source ID","Source Batch Name","Source Prod_ Order Line","Source Ref_ No_","Item Ledger Entry No_","Expected Receipt Date","Shipment Date","Serial No_","Created By","Changed By","Qty_ per Unit of Measure","Quantity","Binding","Suppressed Action Msg_","Planning Flexibility","Appl_-to Item Entry","Warranty Date","Expiration Date","Qty_ to Handle (Base)","Qty_ to Invoice (Base)","Quantity Invoiced (Base)","New Serial No_","New Lot No_","Disallow Cancellation","Lot No_","Vari </inputbuf>
</process>
Run Code Online (Sandbox Code Playgroud)
这取自 sql server management studio 17.4,管理,扩展事件,会话,system_health,package0.event_file 事件详细信息 xml_report 值。如您所见,显示的查询已被截断。有没有办法告诉 SQL 记录所有查询而不截断它?
如果没有办法告诉 sql 不截断,那么检索整个查询的最佳方法是什么?
谢谢
如果没有办法告诉 sql 不要截断,那么检索整个查询的最佳方法是什么
每个都deadlock graph包含sqlhandle参与的每个进程,并且可用于检索sql_text:
select *
from sys.dm_exec_sql_text(0x01000c001247710230b2bfa34800000000000000000000000000000000000000000000000000000000000000)
Run Code Online (Sandbox Code Playgroud)
其中参数 for 的值sys.dm_exec_sql_text是sqlhandle来自死锁图的值。
这样,如果语句的执行计划仍在 中,您就可以获得语句cache。
您需要有VIEW SERVER STATE查询权限sys.dm_exec_sql_text。
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |