Liste les requêtes en cours d'exécution sur SQL Server
Est-il un moyen de lister les requêtes qui sont actuellement en cours sur MS SQL Serveur (que ce soit par le biais de l'Enterprise Manager ou SQL) et/ou qui est connecté?
Je pense que j'ai un très long temps d'exécution d'une requête est en cours d'exécution sur un de mes serveurs de base de données et j'aimerais le retrouver et l'arrêter (ou de la personne qui garde son démarrage).
- Je suis à l'aide de SQL server 8.0.x
Vous devez vous connecter pour publier un commentaire.
Cela va vous montrer la plus longue course de Spid sur un SQL server 2000 ou SQL server 2005:
Si vous avez besoin de voir le SQL en cours d'exécution pour un spid à partir de ces résultats, utilisez quelque chose comme ceci:
Si vous exécutez SQL Server 2005 ou 2008, vous pouvez utiliser la DMV pour trouver cette...
Vous pouvez exécuter le sp_who de commande pour obtenir une liste de tous les utilisateurs, des sessions et des processus. Vous pouvez ensuite exécuter le TUER commande sur les spid qui bloque les autres.
Je suggère d'interroger la
sys
points de vue. quelque chose de semblable àDe cette façon, vous pouvez obtenir un
TotalPagesAllocated
qui peut vous aider à comprendre lespid
qui prend toutes les ressources du serveur. Il y a beaucoup de moments où je ne peux même pas afficher le moniteur d'activité et l'utilisation de cessys
points de vue pour voir ce qu'il se passe.Je vous recommande la lecture de l'article suivant. J'ai eu cette référence à partir d'ici.
Il existe différentes vues de gestion intégrée dans le produit. Sur SQL 2000 que vous souhaitez utiliser sysprocesses. Sur SQL 2K5 il y a plus de vues comme sys.dm_exec_connections, sys.dm_exec_sessions et sys.dm_exec_requests.
Il existe également des procédures comme sp_who qui tirent parti de ces points de vue. Dans 2K5 Management Studio vous bénéficiez également de Moniteur d'Activité.
Et dernier mais pas moins il y a de la collectivité ont contribué scripts comme le Qui Est Active par Adam Machanic.
En fait, l'exécution de
EXEC sp_who2
dans l'Analyseur de Requêtes /Management Studio donne plus d'infos quesp_who
.Au-delà de ce que vous pourriez mettre en place le générateur de profils SQL pour voir toutes les dans et hors de la circulation sur le serveur. Le générateur de profils vous permettent d'affiner exactement ce que vous regardez pour.
Pour SQL Server 2008:
Garder à l'esprit que le profileur est vraiment un de journalisation et de regarder app. Il va continuer à se connecter et regarder aussi longtemps que il est en cours d'exécution. Il pourrait remplir des fichiers texte ou des bases de données ou des disques durs, donc attention à ce que vous l'avez regarder et pour combien de temps.
Dans l'Explorateur d'Objets, drill-down pour: Serveur -> Administration -> Moniteur d'Activité. Cela vous permettra de voir toutes les connexions sur le serveur actuel.
Comme une note, le Serveur SQL Moniteur d'Activité pour SQL Server 2008 peut être trouvé par un clic droit sur votre serveur actuel et va "Moniteur d'Activité" dans le menu contextuel. Je trouvais que c'était plus simple de tuer les processus si vous êtes à l'aide de SQL Server Management Studio.
voici une requête qui affiche toutes les requêtes qui sont de blocage. Je ne suis pas entièrement sûr si elle va juste afficher les requêtes lentes:
Le droit de script serait comme ceci:
Vous pouvez utiliser la requête ci-dessous pour trouver exécutant la dernière demande:
À l'aide de script ci-dessous, vous pouvez également trouver le numéro de connexion de données par base de données:
Pour plus de détails, veuillez visiter:
http://www.dbrnd.com/2015/06/script-to-find-running-process-session-logged-user-in-sql-server/
en 2005, vous pouvez cliquer droit sur une base de données, accédez à des rapports et il y a toute une liste de rapports sur les transitions et les serrures, etc...
Et
Essayer avec ceci:
Il vous fournira toutes les requêtes de l'utilisateur. Jusqu'à spid 50,c'est tout de sql server sont des processus internes des séances. Mais, si vous le souhaitez, vous pouvez supprimer la clause where:
Utilisation de Sql Server Profiler (menu outils) pour surveiller l'exécution de requêtes et d'utiliser le moniteur d'activité dans la Gestion de studio pour voir comment est connecté et si leur connexion est bloquant d'autres connexions.
Vous devriez essayer très utile procédure
sp_whoIsActive
qui peut être trouvé ici: http://whoisactive.com et il est gratuit.