与 BizTalk 管理控制台 "Completed Instances" 等效的 SQL 查询是什么?

What is the SQL query equivalent to the BizTalk Admin Console "Completed Instances"?

与 BizTalk 管理控制台 "Completed instances" 等效的 SQL 查询是什么?

我想获取已完成实例的各种摘要,例如按服务名称分组,但 "Completed instances" 选项卡没有 "Group by" 选项

我可以直接查询 SQL 个表吗?

如果是这样,我应该查看哪些表格?

是的,你可以。所需的 BizTalk DDBB 是 [BizTalkDTADb],所有执行的 table 是 [dta_ServiceInstances]。要获取服务的名称并制作有用的报告,还需要 table [dta_Services]。我使用此查询的目的与您要求的相同,但获得了所有正确和错误的实例:

SELECT [nServiceId] OrchID, [strServiceName] OrchName, 
  CASE WHEN HRESULT = 0 THEN 'OK' ELSE 'ERROR' END AS [Status], 
  COUNT([nServiceInstanceId]) NumberOfInstances
FROM [BizTalkDTADb].[dbo].[dta_ServiceInstances] SI WITH (NOLOCK)
INNER JOIN [BizTalkDTADb].[dbo].[dta_Services] S
  ON SI.[uidServiceId] = S.[uidServiceId]
WHERE S.[strServiceType] = 'Orchestration' AND SI.[dtStartTime] > '20161101'
GROUP BY [strServiceName],[nServiceId],
  CASE WHEN HRESULT = 0 THEN 'OK' ELSE 'ERROR' END 
ORDER BY 2, 3 DESC

如果你只想要成功的,你应该在'where'子句中添加"HRESULT = 0"并删除'select'和'group by'中的CASE语句。而且我在where子句中也有一个日期,通常我只需要看到最后几天。

编辑:查询在 BizTalk 2013 中运行,我现在没有安装 2010,但我想它是一样的。