Умные трюки, чтобы найти конкретные запросы LINQ в SQL Profiler

Профилирование запросов LINQ и их планов выполнения особенно важно из-за сумасшедшего SQL, который иногда можно создать.

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

Я также обнаружил, что пытаюсь использовать DataContext для отслеживания неадекватности, поскольку он не дает мне SQL, который я на самом деле могу выполнить сам.

Моя лучшая стратегия на данный момент - добавить «случайное» число к моему запросу и отфильтровать его в трассировке.

LINQ:

where o.CompletedOrderID != "59872547981"

Фильтр профилировщика:

'TextData' like '%59872547981'

Это прекрасно работает с парой предостережений:

Я должен быть осторожен, чтобы не забыть удалить критерии или выбрать что-то, что не сильно повлияет на план запроса. Да, я знаю, оставляя это, напрашивается на неприятности.Хотя, насколько я могу судить, даже при таком подходе мне нужно запускать новую трассировку для каждого запроса LINQ, который мне нужно отслеживать. Если я иду в «Файл> Свойства» для существующей трассировки, я не могу изменить критерии фильтра.

Вы не можете просто выполнить запрос в своем приложении и увидеть его всплывающим в Профилировщике без каких-либо дополнительных усилий. Просто надеялся, что кто-то другой придумал лучший способ, чем этот, или, по крайней мере, предложил менее «опасный» токен для поиска, чем запрос по столбцу.

Ответы на вопрос(3)

Ваш ответ на вопрос