60 votes

Consignation de TOUTES les requêtes sur une base de données SQL Server 2008 Express?

Existe-t-il un moyen d'indiquer à SQL Server 2008 Express de consigner chaque requête (y compris chaque requête SELECT!) Dans un fichier?

C'est une machine de développement, donc les effets secondaires négatifs de la journalisation de Select-Queries ne sont pas un problème.

Avant que quelqu'un suggère d'utiliser le profileur SQL: ceci n'est pas disponible dans Express (est-ce que quelqu'un sait s'il est disponible dans Web Edition?) Et je cherche un moyen de consigner des requêtes, même en mon absence.

68voto

KyleLanser Points 1526

Générateur de profils SQL Server:

  • Fichier->Nouvelle Trace
  • L'Onglet "Général" est affiché.
  • Ici, vous pouvez choisir "Enregistrer le fichier:" de sorte que son enregistré dans un fichier.
  • Consultez la section "Sélection de l'Événement" de l'Onglet
  • Sélectionnez les éléments que vous souhaitez enregistrer.
  • TSQL->SQL:BatchStarting vous obtiendrez sql sélectionne
  • Procédures stockées->RPC:Terminé, vous obtiendrez des Procédures Stockées.

Plus d'informations à partir de Microsoft: SQL Server 2008 Livres en Ligne - à l'Aide de SQL Server Profiler

Mise À Jour - Express Edition:

Un commentaire a été fait que MS SQL Server Profiler n'est pas disponible pour la version express edition.
Leur ne semble pas être une alternative gratuite: Profiler pour Microsoft SQL Server 2005 Express Edition

29voto

Dmytriy Voloshyn Points 333

Il y a un moyen de plus pour obtenir des informations sur les requêtes qui a été exécutée sur MS SQL Server Express est décrit ici: http://blog.sqlauthority.com/2008/01/03/sql-server-2005-last-ran-query-recently-ran-query/

Brièvement, il s'exécute smart requête aux tables système et obtient les informations(texte, le temps de l'exécution sur les requêtes(ou cache les plans de requête si nécessaire). Ainsi, vous pouvez obtenir des informations sur les requêtes exécutées sans profiler dans MSSQL 2008 Express edition.

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

28voto

Herbert Lynch Points 391

...Réponse tardive mais j'espère que cela serait utile à d'autres lecteurs ici...

À l'aide de SQL Server Express with advanced exigences en matière de vérification comme ce n'est pas vraiment optimale, à moins que c'est seulement dans l'environnement de développement.

Vous pouvez utiliser des traces (www.broes.nl/2011/10/profiling-on-sql-server-express/) pour obtenir les données dont vous avez besoin, mais vous auriez à analyser vous-même.

Il existe des outils de tiers, qui peut le faire, mais leur coût sera très élevé. Journal de l'explorateur de ApexSQL peut tout journal, mais de sélectionner et Idera du directeur de la conformité, du journal des instructions select, mais c'est un coût est beaucoup plus élevé.

3voto

Joel Coehoorn Points 190579

Vous pouvez enregistrer les modifications. SQL Server 2008, fera de ce particulièrement facile avec la Capture de Données modifiées. Mais SQL Server n'est pas très bon à la journalisation Sélectionne.

Il est théoriquement possible avec le profiler, mais il va tuer votre performance. Vous pouvez "sortir avec elle" sur votre bureau, mais je pense que vous remarquez que votre machine agissant ralentir assez pour causer des problèmes. Et il ne fonctionnera certainement pas après tout type de déploiement.

Un point important pour un couple d'autres ont manqué déjà: sauf s'ils ont changé quelque chose pour l'année 2008, je n'ai pas entendu parler, vous ne pouvez pas déclencher une sélection.

0voto

Jason Glover Points 186

On dirait que vous pouvez créer des traces en utilisant T-SQL

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

Cela pourrait aider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X