J'exécute une importation de données (en utilisant C # / Linq), et naturellement j'essaie d'optimiser mes requêtes autant que possible. À cette fin, j'exécute une trace sur la base de données à l'aide de SQL Server Profiler, avec ma trace filtrée par mon nom de connexion SQL (c'est un nom qui peut être attribué de manière unique à mon processus d'importation de données).
Curieusement, la plupart de mes instructions SQL sont vraiment rapides :) - très peu de requêtes dépassent même la barre des 1 ms. Mais entre toutes mes requêtes, plusieurs lignes sont espacées où la classe EventClass est "Audit Login" ou "Audit Logout" - et la durée d'un "Audit Logout" peut aller jusqu'à une minute!
Cela a-t-il quelque chose à voir avec le fait que j'utilise des transactions dans mon import? Si oui, y a-t-il un moyen de trouver quelles sont les requêtes les plus importantes afin que je puisse les nettoyer?
la source
Réponses:
Si je me souviens bien, la durée d'une déconnexion d'audit est la durée pendant laquelle la connexion a été ouverte. Par exemple, rien à voir avec la vitesse de la commande - juste la durée pendant laquelle la connexion a été «connectée».
la source
Reads
réponses à la mesure du temps?Reads
colonne ne représente pas les lignes renvoyées par les requêtes, mais le nombre de lectures de disque logique. Une requête qui ne retourne même rien peut analyser une table entière de 1 million d'enregistrements à la recherche du rien à retourner, ce qui générerait un très grand nombre de lectures. Ainsi, le nombre de lectures n'est pas vraiment corrélé naturellement avec le nombre de requêtes.Les événements de connexion / déconnexion sont liés à la configuration / suppression. IIRC, l'heure correspond à la durée de connexion, par opposition à une durée de traitement comme pour les autres événements du journal.
En général, on cache ces événements sauf si vous pensez qu'il y a un problème avec la gestion du pool de connexions, etc.
Les temps bruts pour les lots doivent être suffisants pour diagnostiquer le temps que prend l'activité réelle, y compris l'impact de toutes les transactions, etc.
la source
La classe d'événements Audit Logout indique qu'un utilisateur s'est déconnecté (déconnecté) de Microsoft SQL Server. Les événements de cette classe sont déclenchés par de nouvelles connexions ou par des connexions réutilisées à partir d'un pool de connexions.
il s'agit de la durée totale de connexion de la connexion, y compris le temps d'inactivité, donc cela n'indique pas un problème de performances. Le profilage des connexions / déconnexions est également très peu susceptible de provoquer un problème de performances. Vous feriez mieux de rechercher des requêtes peu performantes, éventuellement des requêtes de longue durée.
Pour plus d'informations, je suggère https://msdn.microsoft.com/en-us/library/ms175827.aspx :)
la source
Il convient également de noter que dans cette réponse , l'audit de connexion / déconnexion peut simplement signifier que la connexion est réutilisée / renvoyée au pool de connexions.
la source