Профилирование запросов LINQ и их планов выполнения особенно важно из-за сумасшедшего SQL, который иногда может быть создан.Умные трюки для поиска определенных запросов LINQ в SQL Profiler
Я часто нахожу, что мне нужно отслеживать конкретный запрос и с трудом находить в анализаторе запросов. Я часто делаю это в базе данных, которая имеет много запущенных транзакций (иногда это производственный сервер), поэтому просто открытие Profiler не является хорошим.
Я также нашел tryin, чтобы использовать DataContext для отслеживания неадекватного, так как он не дает мне SQL, я могу фактически выполнить сам.
Моя лучшая стратегия до сих пор заключается в добавлении «случайного» номера в мой запрос и фильтрации для него в трассировке.
LINQ:
where o.CompletedOrderID != "59872547981"
Profiler фильтр:
'TextData' like '%59872547981'
Это прекрасно работает с парой оговорок:
- я должен быть осторожным, чтобы не забыть удалить критерии, или выберите что-то, что слишком сильно повлияет на план запроса. Да, я знаю, что он уходит, просит неприятностей.
- Насколько я могу судить, даже при таком подходе мне нужно запустить новую трассировку для каждого запроса LINQ, который мне нужно отслеживать. Если я перейду в «Файл> Свойства» для существующей трассировки, я не могу изменить критерии фильтра.
Вы не можете выполнить запрос в своем приложении и увидеть его всплывающее окно в профилировщике без каких-либо дополнительных усилий. Просто надеялся, что кто-то другой придумал лучший способ, чем этот, или, по крайней мере, предложит менее «опасный» токен для поиска, чем запрос в столбце.
Решение, которое я вам предоставил, может помочь вам: http: // stackoverflow.com/a/41263883/56286 – Fabrice 2016-12-23 16:25:53