CTE循环直到下一个TextData字段存在

时间:2018-06-18 12:21:34

标签: sql-server common-table-expression sql-server-2016

下午全部,

立即道歉。我刚接触使用CTE,他们仍然把我的腌菜混淆了。

我目前正在研究一些SQL Traces,以确定对我们的SQL环境进行API调用的问题,以及可疑导致广泛延迟的问题。

我需要能够确定每个查询的运行时间以及发生的语句类型。但是,查询存在于RPC:Starting Line(EventClass 11)中,持续时间/语句类型(ObjectName)存在于EventClass 11行之后的QLTransaction行(EventClass 50)中。更复杂的是,只有当EventSubClass为0时,我才需要跨所有EventSubClasses和Statement Type的持续时间。

以下SQL Fiddle有一个示例数据范围(我不得不为GDPR目的编辑TextData,但在这种情况下每个条目都是不同的,实际数据中有重复项): - http://sqlfiddle.com/#!7/88857/4/1

我希望看到的输出如下:

RowNumber   EventClass  TextData            StartTime          ApplicationName  Duration    EndTime     EventSubClass   ObjectName
244         11          *** REDACTED 1 ***  18/06/2018 12:14   (null)           (null)      (null)      (null)          (null)
245         11          *** REDACTED 2 ***  18/06/2018 12:14   (null)           34791       (null)      (null)          CREATE TABLE, INSERT, sort_init, sort_init, DROPOBJ, FCheckAndCleanupCachedTempTable
258         11          *** REDACTED 3 ***  18/06/2018 12:14   (null)           (null)      (null)      (null)          (null)
261         11          *** REDACTED 4 ***  18/06/2018 12:14   (null)           (null)      (null)      (null)          (null)
262         11          *** REDACTED 5 ***  18/06/2018 12:14   (null)           (null)      (null)      (null)          (null)
263         11          *** REDACTED 6 ***  18/06/2018 12:14   (null)           12402       (null)      (null)          sort_init, sort_init
268         11          *** REDACTED 7 ***  18/06/2018 12:14   (null)           (null)      (null)      (null)          (null)

非常感谢提前

0 个答案:

没有答案