Профилировщик SQL Server не фильтрует фильтр столбца TextData

У меня есть хранимая процедура, назовем ее MyStoredProc, которая вызывается каждые несколько секунд.

Я хочу отфильтровать его, потому что он загромождает вид.

Процедура называется как exec sp_executesql N'Exec @Return = [dbo].[MyStoredProc]....

У меня уже есть два фильтра Not Like в столбце TextData, которые отлично работают для других текстов. Однако этот третий не работает. Звонки по-прежнему отображаются.

Я ввел разные варианты: %[MyStoredProc]% или %MyStoredProc% или MyStoredProc.

Они не работают.
Какой правильный синтаксис для этого? Также может ли фильтр TextData работать с именем переменной?

Я использую Profiler 2014 для движка 2012 года.


person Tony_Henrich    schedule 25.12.2014    source источник
comment
Код чего? Это не вопрос программирования. Какую часть вы не поняли?   -  person Tony_Henrich    schedule 27.12.2014
comment
Это вопрос о том, как использовать инструмент, которым пользуются программисты, и его нельзя закрывать по указанной причине. Оп предоставил всю информацию, необходимую для ответа на этот вопрос. Повторите голосование, пожалуйста.   -  person rene    schedule 30.12.2014
comment
Я не смог воспроизвести проблему (MyStoredProc неправильно, как и %[MyStoredProc]% из-за способ (НЕ)LIKE интерпретирует скобки, но %MyStoredProc% должен работать). Мои настройки немного отличаются (и Profiler, и движок - SQL2014), но я был бы удивлен, если бы это имело какое-либо значение. Пожалуйста, укажите полный оператор SQL в своем вопросе, я предполагаю, что там тоже есть DECLARE @Return? Можете ли вы воспроизвести проблему, выполнив ту же самую инструкцию SQL вручную из SQL Server Management Studio?   -  person Ruud Helderman    schedule 01.01.2015


Ответы (3)


Как фильтровать строку из textData профилировщикаКак видите, вы должны указать имя процедуры (я рекомендую без имени схемы , dbo.) между %% (без скобок)

person itzik Paz    schedule 25.12.2014
comment
Я упомянул в своем вопросе, что это не сработало. - person Tony_Henrich; 27.12.2014
comment
@ Тони, это правильный синтаксис, поэтому твоя проблема должна быть вызвана чем-то другим. Рекомендация делать это без имени схемы тоже разумна, потому что иногда текстовые данные будут выглядеть как ...[dbo].[MyStoredProc].... Будьте осторожны с использованием квадратных скобок в этом контексте (например, %[MyStoredProc]%), поскольку они имеют особое значение для предложений T-SQL LIKE. Вместо этого вы можете использовать символы подчеркивания. - person OutstandingBill; 02.06.2016
comment
У меня был фильтр для Не нравится, и я пытался добавить фильтр для Нравится... но это не сработало. Кажется, я могу добавлять фильтры только в одну группу (Нравится или Не нравится)... но не в обе одновременно. - person Lee Grissom; 10.01.2018
comment
спасибо, спасибо за напоминание о синтаксисе %. Google привел меня сюда, и хотя в вопросе OP это упоминается, это очень хороший ответ, спасибо. - person Alex from Jitbit; 12.03.2020

Не уверен, что это поможет OP, но я много раз сталкивался с этим сценарием, и мне просто приходилось «возиться» с различными типами запросов, экспортировать данные в Excel, а затем вручную фильтровать результаты.

Тем не менее, я нашел способ обойти это, который, кажется, работает последовательно. Сначала создайте новый шаблон профилировщика (Файл>Шаблоны>Новый шаблон...) Настройте шаблон со всеми необходимыми настройками или используйте параметр Основать новый шаблон на существующем:. Я знаю, что изначально использовал эти параметры для своих шаблонов, и я думаю, что это могло быть проблемой.

Теперь, когда вы переходите к добавлению новых фильтров, вам нужно добавить их, отредактировав шаблон. Мне не удавалось заставить фильтр TextData работать, если я обновлял значения свойств для трассировки. Вместо этого перейдите в «Файл»> «Шаблоны»> «Редактировать шаблоны...» и выберите и обновите свой шаблон.

Сохраните шаблон, закройте Profiler и снова откройте шаблон. При запуске шаблона фильтр должен работать.

Я не уверен, что есть более простой способ, но я знаю, что на самом деле я не мог заставить свой фильтр работать, пока не сохранил, закрыл и снова открыл свой шаблон. Я не уверен, в чем проблема, но я предполагаю, что SQL Server Profiler кэширует некоторые старые значения фильтра, которые не обновляются с помощью поля TextData. Перезапуск приложения кажется единственным решением, когда это происходит.

person RLH    schedule 14.07.2015

Поскольку фильтр не работал, я использовал профилировщик SQL> Меню> Изменить> Найти> «StoredProcName», чтобы найти строки, содержащие его.

person Martin    schedule 18.09.2018