我无法确定为什么某个存储过程没有出现在计划缓存或SQL Server Profiler中。我正在运行SQL Server 2014 SP2。
存储过程和类型如下所示。我发现唯一有用的参考资料涉及SS 2008中的错误修复,该错误修复在字符串函数中使用了Blob。我在类型定义中确实有一个斑点(ntext
)。这可能是原因或某种原因吗?如果不是,还有什么可能导致此行为?有什么方法可以使存储过程在探查器中缓存和/或显示?
CREATE TYPE [dbo].[OruMessages] AS TABLE
(
[msg_status] [nchar](10) NOT NULL,
[msg_no] [char](20) NOT NULL,
[HL7_text_long] [ntext] NULL,
[HL7_text_short] [nvarchar](255) NULL,
[patient_id] [nvarchar](60) NULL,
[msh_system] [nvarchar](50) NOT NULL,
[msh_organization] [nvarchar](50) NOT NULL,
[msh_event_cd] [nchar](10) NOT NULL,
[msh_msg_type] [nchar](10) NOT NULL,
[sent_dt] [datetime] NULL,
[queued_dt] [datetime] NOT NULL
)
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_HL7_SaveOruMessages]
(@messageList [dbo].[OruMessages] READONLY)
AS
BEGIN
INSERT INTO [dbo].[HL7_out_queue]
SELECT
[msg_status],
[msg_no],
[HL7_text_long],
[HL7_text_short],
[patient_id],
[msh_system],
[msh_organization],
[msh_event_cd],
[msh_msg_type],
[sent_dt],
[queued_dt]
FROM
@messageList;
END;
GO
CREATE EVENT SESSION [Capture [usp_HL7_SaveOruMessages]] executions] ON SERVER
ADD EVENT sqlserver.module_end(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_name]=N'db' AND [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%usp_HL7_SaveOruMessages%'))),
ADD EVENT sqlserver.module_start(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_name]=N'db' AND [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%usp_HL7_SaveOruMessages%'))),
ADD EVENT sqlserver.sql_batch_completed(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[database_name],N'db') AND [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%usp_HL7_SaveOruMessages%') )),
ADD EVENT sqlserver.sql_statement_completed(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[database_name],N'db') AND [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%usp_HL7_SaveOruMessages%') ))
ADD TARGET package0.event_file(SET filename=N'C:\db\Capture [usp_HL7_SaveOruMessages] executions')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO
答案 0 :(得分:0)
这是最后更改的扩展事件会话,它使我可以从主机上进行所有RPC,批处理和模块调用,然后我就可以找到有问题的存储过程。
Private Overrides Async Function UpdateData As Task(Of ReturnData)
textBox1.text = "new text"
await Task.CompletedTask
return new ReturnData("data")
End Function