Регистрация всех запросов в базе данных SQL Server 2008 Express?


54

Есть ли способ сказать SQL Server 2008 Express регистрировать каждый запрос (включая каждый запрос SELECT!) В файл?

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

Прежде чем кто-то предложит использовать SQL Profiler: это недоступно в Express (кто-нибудь знает, доступен ли он в веб-редакторе?), И я ищу способ регистрации запросов, даже когда я уезжаю.

61

SQL Server Profiler:

  • Файл-> Новый след
  • отображается на вкладке "Общие".
  • Здесь вы можете выбрать «Сохранить в файл:», чтобы он зарегистрировался в файле.
  • Просмотреть вкладку «Выбор события»
  • Выберите элементы, которые хотите войти в систему.
  • TSQL-> SQL: BatchStarting поможет вам выбрать sql
  • Хранимые процедуры-> RPC: Завершенные вызовы будут сохранены.

Дополнительная информация от Microsoft: SQL Server 2008 Books Online - Using SQL Server Profiler

Update - SQL Express Edition:

Было сделано замечание о том, что MS SQL Server Profiler не доступен для экспресс-издания ,
Там, как представляется, свободная альтернатива: Profiler for Microsoft SQL Server 2005 Express Edition

+2

Спасибо. Недоступно в Express, хотя :-( 23 сен. 082008-09-23 21:02:44

+2

Я лично не пробовал это, но вот он: Профайлер для Microsoft SQL Server 2005 Express Edition http://sqlprofiler.googlepages.com/ 24 сен. 082008-09-24 04:52:34

  0

Когда я получу работу завтра, я попробую что альтернативная программа против mssql 2008. 24 сен. 082008-09-24 04:57:51

  0

Инструмент, который я предлагаю, в настоящее время не поддерживает 2008, но я загрузил исходный код, обновил ссылки на проект, чтобы ссылаться на SDd 2008, а затем работало приложение. Я отправил письмо по электронной почте сопровождающему, чтобы он попросил его обновить проект. 24 сен. 082008-09-24 15:51:25

+1

Обновление: (1.) Инструмент не поддерживает сохранение журнала в файл. (2.) Если вы хотите получить исходный код и обновить инструмент для работы, напишите мне по адресу [email protected] 24 сен. 082008-09-24 17:21:56

  0

Я пробовал бесплатный инструмент, и он, похоже, не показывает мне фактические SQL-запросы. Как долго они длились. неправильно. 18 ноя. 092009-11-18 11:17:47

  0

Выберите SPStmtStarting в профиле «AnjiLab Sql Profiler», чтобы сбросить операции SELECT/INSERT/UPDATE/DELETE. 30 авг. 112011-08-30 14:38:15

  0

Я использовал SqlProfilerExpress (Open Source), и он работал очень хорошо. Я не администратор базы данных, но я получил базовый трассу и получил то, что мне было нужно. 14 окт. 112011-10-14 15:20:42

+1

Они, похоже, взимают плату за SQL Profiler Express, а старые версии закрываются при открытии, заявляя, что существует новая версия ... 06 июн. 122012-06-06 14:29:22

  0

Я просто хотел упомянуть, что вы можете получить «Profiler Profiler SQL» от datawizard.com (в этом случае вы получите доступ к https://sites.google.com/site/sqlprofiler/) в качестве бесплатной пробной версии в течение 14 дней и за 20 долларов США для использования на 3 серверах.Я не связан с ними, но я думаю, это стоит отметить, поскольку люди могут отказаться от этого решения только из-за того, что кто-то упоминает, что он больше не свободен. Кроме того, он позволяет ** экспортировать ** трассировку в XML. 28 июн. 122012-06-28 13:19:59


3

Вы можете регистрировать изменения. SQL Server 2008 сделает это особенно легко с помощью Change Data Capture. Но SQL Server не очень хорош в регистрации SELECT.

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

Один важный момент еще пропустили еще пару человек: если они не изменили что-то в 2008 году, о котором я не слышал, вы не можете вызвать SELECT.

  0

Спасибо. Ну, это машина для разработки, поэтому производительность не является проблемой, если я могу включить/отключить эту функцию. Захват Selects in Production в любом случае кажется рецептом катастрофы. 23 сен. 082008-09-23 21:05:46


0

Я бы использовал триггеры или использовал стороннее программное обеспечение, такое как Red Gate, чтобы проверить ваши файлы журналов SQL.

  0

Red Gate Log Rescue предоставляет только вставки, обновления и удаления. 23 сен. 082008-09-23 20:56:58


1

Кажется, что вы можете создать следы с помощью T-SQL

http://support.microsoft.com/kb/283790/

Это может помочь.


1

Как раз для записи, я включаю в себя советы использовать DataWizard's SQL Performance Profiler в качестве отдельного ответа, так как это действительно противоположно answer pointing at SQL Server Profiler.

Существует бесплатная пробная версия на 14 дней, но даже если вам нужно ее купить, это всего лишь 20 долларов США для 3 серверов (на момент написания, 2012-06-28). Это кажется более чем справедливым для меня, учитывая, что тысячи пользователей, использующих SQL Server Express, сохранили.

Я до сих пор использовал пробную версию и предлагал именно то, что искали OP: способ отслеживать все запросы, поступающие в конкретную базу данных. Он также предлагает экспортировать трассировку в файл XML. Платная версия предлагает еще несколько функций, но я еще не пробовал их.

Отказ от ответственности: Я просто время от времени возился с БД, и я никоим образом не связан с DataWizard. Мне просто так понравился их инструмент, и я хотел, чтобы люди знали, что он существует, поскольку это помогло мне профилировать мою установку SQL Server Express.

  0

Это трет меня неправильно, когда компания решает взять продукт, который был ранее открытым исходным кодом и бесплатным, а затем полностью зарывает бесплатную версию, чтобы продать его. Я понимаю, что укладываю время в проект и хочу монетизировать его. Но оставьте старые версии там и не вытащите Red-Gate (.Net Reflector), где вы отключите рабочую установку. Я использовал Anjlab только потому, что был свободен. Если я собираюсь потратить 20 долларов на инструмент, я бы предпочел потратить 50 долларов, чтобы получить версию SQL Server Developer Edition, которая включает в себя SQL Profiler и почти все, что может предложить SQL Server. 21 авг. 122012-08-21 21:30:39

+1

@Sam: Спасибо за ваш комментарий. Я не знал, что есть «Developer Edition» SQL Server! $ 50 - довольно удивительная сделка. И я согласен с вашей точкой зрения, что старые версии программного обеспечения должны быть доступны. Но для новых пользователей я действительно не чувствую боли. Они либо покупают его, либо нет. 22 авг. 122012-08-22 08:06:06


28

... Поздний ответ, но я надеюсь, что это будет полезно для других читателей здесь ...

Использование SQL Server Express с дополнительными требованиями аудита, таких как это на самом деле не оптимальным, если это не только в среде разработки.

Вы можете использовать трассы (www.broes.nl/2011/10/profiling-on-sql-server-express/), чтобы получить нужные данные, но вам придется их самостоятельно разбирать.

Есть сторонние инструменты, которые могут это сделать, но их стоимость будет довольно высокой. Log explorer от ApexSQL может регистрировать все, кроме select, и Idera’s менеджер соответствия также будет записывать операторы выбора, но это намного дороже.

  0

Это улучшилось с помощью профайлера, который поставляется с SQL Server 2014 Express? 06 ноя. 152015-11-06 21:50:41


25

Существует еще один способ получить информацию о запросах, которые были выполнены на MS SQL Server Express описано здесь: http://blog.sqlauthority.com/2008/01/03/sql-server-2005-last-ran-query-recently-ran-query/

Вкратце, он работает смарт-запрос к системным таблицам и получает информацию (текст, время выполняется) о запросах (или кешированных планов запросов, если необходимо). Таким образом, вы можете получить информацию о выполненных запросах без профилировщика в выпуске MSSQL 2008 Express.

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query] 
FROM sys.dm_exec_query_stats AS deqs 
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
ORDER BY deqs.last_execution_time DESC 
+2

Imho лучший ответ здесь с точки зрения реального и быстрого решения, спасибо! 27 янв. 142014-01-27 15:18:11

+1

Да - это делается! Спасибо! +1. 16 авг. 152015-08-16 18:12:24