Как увидеть SQL-запрос в SQL profiler?
Когда я выполняю запрос обновления или другой запрос языка обработки данных (DML), который изменяет данные в базе данных, используя Entity Framework 4, Как я вижу запрос, отправленный на SQL Server?
Допустим, я делаю что-то вроде:
someEntityObjectInstance.SomeProperty = newValue;
context.SaveChanges();
В этом случае нет ObjectQuery, чтобы сделать ToTraceString() против, поэтому я действительно не могу видеть, что происходит под одеялом. Я верю, что есть какой-то инструмент Microsoft SQL Server, такой как профилировщик или что-то, что поможет мне увидеть запрос.
Кроме того, некоторые Intellitrace в VS 2010 Ultimate делают то же самое, я думаю?
Не могли бы вы научить меня, как использовать профилировщик SQL 2005, если он вообще существует?
Обновить
Сейчас я смотрю на трассировку в SQL Server 2005 Profiler, но когда я выполняю вызов context.DeleteObject() или когда я обновляю объект и вызываю context.SaveChanges(), я не вижу запросов обновления или удаления в профилировщике. Я вижу только запросы WIERD SELECT.
2 ответов:
Есть более простые способы, если все, что вы хотите, это видеть запросы sql, как они попадают в БД.
Вот два очень легких SQL-профилировщика, которые могут выполнять работу для различных вкусов SqlServer, включая LocalDb - " работал на моей машине (TM)"
ExpressProfiler
Безусловно, самый простой в использовании (а также Самый голый-кости-показать-мне-SQL-операторы-kthxbye) являетсяExpressProfiler на CodePlex .
Скачать tiny ZIP, Интересно, если вы действительно получили весь файл (Вы сделали), запустите EXE внутри, бац!
И вся программа представляет собой один 126 КБ EXE ! Вот это легкие!
Anjlab Sql Profiler
Другой-из DataWizard , который раньше был бесплатным (по-видимому, цены теперь начинаются от $5).
Кому-то удалось сохранить снимок на GitHub (включая устанавливаемые xcopy двоичные файлы), когда он был с открытым исходным кодом.
Исполняемый файл представляется как " AnjLab Sql Profiler " и допускает некоторую фильтрацию отображаемых событий - но эта сила также является его слабостью, так как существует ооочень много типов событий, которые могут быть включены/отключены. Если все выбрано, результат будет чрезвычайно подробным.
Более здравый вывод можно получить, только выбрав определенные события.
Вот события, которые я выбрал, чтобы получить вышеприведенный результат:



Comments