J'ai un serveur SQL 2005 x64, et lorsque j'essaie d'émettre des questions contre elle (par exemple, lorsque j'essaie de créer un index), mon spid va à "dormir" immédiatement et semble attendre indéfiniment. Il n'est pas bloqué (la colonne "Blkby" dans SP_Who2 est vide), et les valeurs de la CPU et de la discipline sont très petites (moins de 300 chacune) et ne poussent pas. P>
Que pourrait-on attendre ma requête? Si je fais une sélection * hors de la table, je vous indexer, j'obtiens tous les millions de rangées dans une minute environ, ce n'est donc pas bloqué l'accès à la table, ni même (il semble) contentions de table. P>
Toute réflexion sur d'autres choses que je pouvais vérifier? Dois-je juste donner et redémarrer mon instance SQL? :) p>
Détails: Je suis en cours d'exécution de l'index Créer un autre onglet dans SSMS, et ce n'est jamais revenu - il montre simplement "exécuter" et ne revient jamais, alors je ne pense pas que le processus a été abandonné. P>
3 Réponses :
La commande est terminée et la connexion attend la commande suivante. P>
de l'URL:
"Ce problème est aussi vieux que SQL Server. En fait, il remonte à Sybase Days mais continue à tromper et aux administrateurs de puzzle. P>
Une session avec ce statut de la commande Sleeping / En attente est simplement une connexion cliente sans requête active sur le serveur SQL. Le tableau ci-dessous montre les transitions de la course à des états de sommeil pour une session. " P>
Mais je gère le commandement de SSMS et ma session affiche toujours "Exécution" - elle ne semble pas être faite du tout, et elle est allé à "suspendue" de manière trop rapide pour avoir réellement complété. Un lien intéressant, cependant, je n'étais pas au courant de cette connexion.
select * from sys.dm_exec_requests r join sys.dm_os_tasks t on r.session_id = t.session_id where r.session_id = <spid of create index>; This will show not only the status of the request, but also all the tasks spawned by the request. An online CREATE INDEX may spawn parallel threads and will suspend itself until they're finish.
Excellente réponse. Exactement ce que je cherchais. blog.sqlauthority.com / 2009/01/07 / ... m'a montré, et cela m'a montré exactement où se trouvait le problème.
Merci vient d'avoir sauvé mon bacon!
Et si seule la ligne est renvoyée et que son statut est "suspendu"?
L'état "suspendu" peut parfois être trompeur. Par exemple, votre requête pourrait être "suspendue" en attendant la fin des E / S du disque. Cela peut être vérifié en exécutant la requête ci-dessous et en vérifiant la colonne WAIT_TYPE. voir Page Pour plus d'informations sur et voici la requête qui renvoie les informations susmentionnées p> pagesiolatch_ex code> indique que la requête est bloquée en raison de l'attente d'E / S du disque. Cela ne signifie pas que la requête ne fait pas de progresser.
pagesiolatch_ex CODE> P>
Merci pour la requête. Il était en effet utile dans la pointe de la commande qui prend le temps de processeur et IO.