クエリ全体をXMLに記録し、切り捨てないようにSQLサーバーに指示するにはどうすればよいですか?
例:
<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>
これは、SQLサーバー管理スタジオ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)
ここで、sys.dm_exec_sql_text
のパラメーターの値は、デッドロックグラフからのsqlhandle
です。
これにより、実行プランがまだcache
にある場合にステートメントを取得できます。