tablas - ¿Registrando TODAS las consultas en una base de datos de SQL Server 2008 Express?
listar todas las tablas de una base de datos sql server (7)
¿Hay alguna manera de decirle a SQL Server 2008 Express que registre cada consulta (incluidas todas y cada una de SELECT Query!) En un archivo?
Es una máquina de desarrollo, por lo que los efectos secundarios negativos de las consultas de selección de registros no son un problema.
Antes de que alguien sugiera usar el Analizador de SQL: Esto no está disponible en Express (¿alguien sabe si está disponible en la Edición Web?) Y estoy buscando una manera de registrar consultas incluso cuando estoy ausente.
... Última respuesta, pero espero que sea útil para otros lectores aquí ...
Usar SQL Server Express con requisitos de auditoría avanzados como este no es realmente óptimo a menos que solo esté en el entorno de desarrollo.
Puede usar los rastreos (www.broes.nl/2011/10/profiling-on-sql-server-express/) para obtener los datos que necesita, pero tendrá que analizarlos usted mismo.
Hay herramientas de terceros que pueden hacer esto, pero su costo será bastante alto. El explorador de registros de ApexSQL puede registrar todo, pero seleccionar y el administrador de cumplimiento de Idera también registrará las declaraciones seleccionadas, pero su costo es mucho más elevado.
Analizador de SQL Server:
- Archivo → Nuevo rastro
- Se muestra la pestaña "General".
- Aquí puede elegir "Guardar en archivo:" para que se registre en un archivo.
- Ver la pestaña "Selección de evento"
- Seleccione los elementos que desea registrar.
- TSQL → SQL: BatchStarting obtendrá las selecciones sql
- Procedimientos almacenados → RPC: completado obtendrá procedimientos almacenados.
Más información de Microsoft: Libros en pantalla de SQL Server 2008: uso de SQL Server Profiler
Actualización - SQL Express Edition:
Se hizo un comentario de que MS SQL Server Profiler no está disponible para la edición express.
Parece que hay una alternativa gratuita: Profiler para Microsoft SQL Server 2005 Express Edition
Hay una forma más de obtener información sobre las consultas que se han ejecutado en MS SQL Server Express que se describe aquí: http://blog.sqlauthority.com/2008/01/03/sql-server-2005-last-ran-query-recently-ran-query/
En resumen, ejecuta consultas inteligentes a tablas del sistema y obtiene información (texto, tiempo de ejecución) sobre consultas (o planes de consultas en caché si es necesario). De este modo, puede obtener información sobre consultas ejecutadas sin profiler en la edición 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
Parece que puedes crear rastros usando T-SQL
http://support.microsoft.com/kb/283790/
Eso podría ayudar.
Puede registrar cambios. SQL Server 2008 lo hará especialmente fácil con Change Data Capture. Pero SQL Server no es muy bueno para registrar SELECT.
Es teóricamente posible con el generador de perfiles, pero matará tu rendimiento. Puede "salirse con la suya" en su escritorio, pero creo que notará que su máquina actúa lo suficientemente lento como para causar problemas. Y definitivamente no funcionará después de ningún tipo de implementación.
Un punto importante que otros dos ya echaron de menos: a menos que cambien algo para el 2008 del que no me enteré, no se puede activar un SELECT.
Solo para el registro, incluyo los consejos para usar SQL Performance Profiler de DataWizard como una respuesta separada ya que es realmente lo opuesto a la respuesta que apunta a SQL Server Profiler .
Hay una versión de prueba gratuita durante 14 días, pero incluso si necesita comprarla, solo cuesta $ 20 para 3 servidores (al momento de escribir, 2012-06-28). Esto me parece más que justo teniendo en cuenta los miles que todos los usuarios de la edición SQL Server Express han guardado.
Hasta ahora solo he usado la versión de prueba y ofrece exactamente lo que el OP estaba buscando: una forma de rastrear todas las consultas que llegan a una base de datos específica. También ofrece exportar un rastreo a un archivo XML. La versión paga ofrece algunas características más, pero aún no las he probado.
Descargo de responsabilidad: no soy más que otro desarrollador jugando con DB de vez en cuando y de ninguna manera estoy afiliado a DataWizard. Me gustó su herramienta y quería que la gente supiera que existía, ya que me ayudó con el perfil de mi instalación de SQL Server Express.
Yo usaría activadores o usaría un software de terceros como Red Gate para verificar sus archivos de registro SQL.