Почему некоторые команды на вкладке SQL Glimpse оранжевого цвета с восклицательным значком?

На вкладке SQL Glimpse некоторые запросы отображаются оранжевым цветом с восклицательным значком в крайнем левом столбце. Вот пример:

Взгляд на вкладку SQL

В своем исследовании я обнаружил вопрос Stackru: что означает оранжевый цвет на вкладке SQL Glimpse? - какие ссылки выпуск № 435 на Github для этого проекта, который с 2013 года и гласит:

Когда транзакция запускается, но остается незафиксированной, отображается значок предупреждения, а цвет шрифта устанавливается оранжевым.

Однако я не думаю, что это правильно, потому что в моем случае рассматриваемая хранимая процедура не использует транзакцию внутри нее и не заключена в транзакцию из вызывающего ее кода.NET.

Итак, мой вопрос: почему этот конкретный результат запроса отображается на вкладке SQL Glimpse оранжевым цветом и украшен восклицательным значком? К сожалению, при наведении на значок подсказки или другой подсказки нет.

1 ответ

Я скачал код Glimpse, чтобы докопаться до этого...

Короче говоря, Glimpse.Ado поддерживает словарь, который отслеживает, сколько раз каждый конкретный текст команды был выполнен за время существования веб-запроса. Любые тексты команд, которые были выполнены ранее в веб-запросе, помечаются как дубликаты, и эти дубликаты запросов окрашиваются в оранжевый цвет на вкладке Sql.

К сожалению, при использовании хранимых процедур текст команды - это просто имя хранимой процедуры. Следовательно, при определении того, является ли вызов дубликатом, базы Glimpse не совпадают с именем хранимой процедуры, а не с ее входными параметрами. Так что если у вас есть страница, которая вызывает один и тот же sproc дважды, но использует разные входные параметры, Glimpse помечает второй вызов как дубликат, даже если он не является действительно дубликатом (поскольку существуют разные параметры).

В любом случае, я надеюсь, что это поможет кому-то еще, кто интересуется тем же.

Другие вопросы по тегам