使用 C# 从跟踪文件中提取 Transact-SQL 事件

发布于 2024-11-16 21:06:00 字数 613 浏览 0 评论 0原文

我必须将 SQL Server 2005 中创建的跟踪文件数量与 2008 进行比较,并比较每个语句的结果。这是迁移顺利进行的建议方法之一

在 SQL Profiler 菜单中,我可以进入

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

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

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

RPC:Starting

SP:开始

SP:已完成

RPC:Completed

在上面的情况下,提取仅产生两行,

Exec some_sp
GO

我知道如何使用 SMO 读取跟踪文件,但我再次必须创建相当复杂的逻辑来正确配对和聚合所有开始/完成事件,并且不会错过任何内容。

有谁知道如何使用 SMO 和 C# 来实现提取 T-SQL 事件并将跟踪文件的分析委托给 SMO 和/或 Profiler API?

I have to play number of trace files created in SQL Server 2005 against 2008 and compare result of each statement. It is one of the proposed ways that migration went fine

In SQL Profiler menu I can go

File/Export/Extract SQL Server Events/Extract Transact-SQL Events

It creates nice script file where all T-SQL statements divided with GO
I would like to get same result through the code since I have to process about 140 trace files 50MB each and number of them can vary.

If I export trace file into TraceTable for each SP I have about four records

RPC:Starting

SP:Starting

SP:Completed

RPC:Completed

In situation above extract produce just two lines

Exec some_sp
GO

I know how to read tracefile using SMO but again I have to create pretty sophisticated logic to properly pair and aggregate all Start/Complete events and not miss anything.

Does anybody knows hot to achieve extract T-SQL events using SMO and C# and delegate analysis of tracefile to SMO and/or Profiler API?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文