为什么 Glimpse 的 SQL 选项卡中的某些命令显示为橙色并带有感叹号图标?

Why are some commands in Glimpse's SQL tab orange with an exclamation icon?

Glimpse 的 SQL 选项卡将一些查询显示为橙色,最左侧的列中带有感叹号图标。这是一个例子:

在我的研究中,我发现了这个 Whosebug 问题 - What does orange mean in Glimpse's SQL tab? - which references issue #435 on Github for this project,它来自 2013 年并指出:

When a transaction is started but left uncommitted, a warning icon is displayed and the font colour is set to orange.

不过,我认为这是不正确的,因为在我的例子中,有问题的存储过程没有在其中使用事务,也没有包含在调用它的 .NET 代码的事务中。

所以我的问题是,为什么这个特定的查询结果在 Glimpse 的 SQL 选项卡中是橙色的并装饰有感叹号图标?不幸的是,将鼠标悬停在图标上时没有工具提示或其他帮助。

我下载了 Glimpse 代码来深入了解这个...

简而言之,Glimpse.Ado 维护一个字典,用于跟踪每个特定命令文本在 Web 请求的生命周期内被执行的次数。之前在 Web 请求中执行过的任何命令文本都被标记为 重复,并且这些重复的请求在 Sql 选项卡中显示为橙色。

不幸的是,在使用存储过程时,命令文本只是存储过程的名称。因此,在确定调用是否重复时,Glimpse bases 只是基于存储过程名称而不是其输入参数。因此,如果您有一个页面两次调用相同的存储过程,但使用不同的输入参数,Glimpse 会将第二次调用标记为重复,即使它不是真正的重复(因为有不同的参数)。

无论如何,我希望这能帮助其他想知道同样事情的人。