2008-12-15 4 views
2

J'ai quelques spid escrocs dans ma base de données que je peux voir dormir quand je me connecte en tant que sa et utiliser sp_who, mais tente d'utiliser kill <spid> pour les éliminer ont échoué et je n'ai pas réellement accès à la serveur lui-même pour le rebondir. Y a-t-il un autre moyen de tuer ces choses?Comment tuer un spid indiscipliné dans Sybase?

Répondre

3

Les processus système ne peuvent pas être arrêtés. Par exemple, dans la sortie de sp_who où cmd est NETWORK HANDLER, MIRROR HANDLER et CHECKPOINT SLEEP (ou, rarement, CHECKPOINT) et AUDIT PROCESS ne peuvent pas être détruits. Si elles ont le statut de "sommeil de repos", "envoyer le sommeil", "alarme de sommeil" et "verrouiller le sommeil", elles peuvent être tuées. Dans sp_who output, vous ne pouvez pas dire si un processus dont l'état est "recv sleep" appartient à un utilisateur qui utilise SQL Server, mais peut s'arrêter pour examiner les résultats d'une commande ou si le processus indique qu'un l'utilisateur a redémarré un PC ou un autre terminal et a laissé un processus échoué. Vous pouvez en apprendre plus sur un processus discutable en interrogeant la table sysprocesses pour plus d'informations. Ex:

select hostprocess, program_name de sysprocesses où SPID = 8

Si program_name est isql vous savez que ce SPID peut être tué (et ainsi de suite ...)

.
0

J'ai une application cliente qui fait parfois des choses similaires. Le client est généralement au milieu d'une sélection, mais ne récupère plus les lignes. (Cela peut être un curseur côté client, mais je ne suis pas sûr). Ces spids semblent non-tuables. Je dois trouver l'utilisateur et leur demander de se déconnecter.

L'autre scénario dans lequel j'ai eu ces derniers est après des erreurs ou des stacktraces sur le serveur. Vérifiez votre journal des erreurs pour voir s'il y a des entrées douteuses. S'il y a alors un redémarrage va être votre seule option.

Questions connexes