C# 使用C从tracefile中提取Transact-SQL事件

C# 使用C从tracefile中提取Transact-SQL事件,c#,sql-server,smo,C#,Sql Server,Smo,我必须播放SQLServer2005和2008中创建的跟踪文件的数量,并比较每个语句的结果。这是移民顺利进行的建议方式之一 在SQL事件探查器菜单中,我可以 文件/导出/提取SQL Server事件/提取Transact-SQL事件 它创建了一个漂亮的脚本文件,其中所有的T-SQL语句都用GO分割 我希望通过代码得到相同的结果,因为我必须处理大约140个跟踪文件,每个50MB,它们的数量可能会有所不同 如果我将跟踪文件导出到每个SP的TraceTable中,我大约有四条记录 RPC:开始 SP:

我必须播放SQLServer2005和2008中创建的跟踪文件的数量,并比较每个语句的结果。这是移民顺利进行的建议方式之一

在SQL事件探查器菜单中,我可以

文件/导出/提取SQL Server事件/提取Transact-SQL事件

它创建了一个漂亮的脚本文件,其中所有的T-SQL语句都用GO分割 我希望通过代码得到相同的结果,因为我必须处理大约140个跟踪文件,每个50MB,它们的数量可能会有所不同

如果我将跟踪文件导出到每个SP的TraceTable中,我大约有四条记录

RPC:开始 SP:开始 SP:已完成 RPC:已完成 在上述情况下,提取只产生两行

Exec some_sp
GO
我知道如何使用SMO读取tracefile,但同样,我必须创建非常复杂的逻辑,以便正确地配对和聚合所有开始/完成事件,并且不会遗漏任何内容


有人知道hot可以使用SMO和C实现提取T-SQL事件,并将tracefile的分析委托给SMO和/或Profiler API吗?

为什么必须将开始事件和完成事件配对,它们是相同的查询,只需拉出完成的事件并忽略开始事件。在我最初的问题中,所有事件都执行相同的存储过程,但是,它也可以在其他事件中启动,例如SQL:BatchStarting SQL:StmtStarting SQL:StmtCompleted SQL:BatchCompleted这些事件与sqlcommand事件探查器大致相同,它们只包含四个事件以执行一个sqlcommand