2

Possible en double:
Activity Monitor Problems in SQL Server 2005Puis-je tuer ce processus?

J'ai des processus en cours d'exécution sur mon serveur de base de données qui prennent en quantité enourmous de CPU. Quand je regarde les détails au sujet du processus que je reçois:

set transaction isolation level read committed 

Les autres détails comprennent:

  • Status: Sleeping
  • Transactions ouvertes: 0
  • Commande: AWAITING COMMAND
  • Connexion Durée: 12+ Heures
  • Dernier Lot: Il y a moins de 2 minutes

Je n'ai pas regardé le moniteur d'activité récemment, mais quand j'ai reçu le mot de mes administrateurs de serveur que le processeur fonctionnait près de 100% avec SQL Server prenant la majorité, je suis devenu très curieux. Cette commande provient de différentes applications (web) mais aucune d'elles n'utilise réellement ce code. Certains sont écrits en Coldfusion et d'autres en .NET.

Cette commande est-elle générée par SQL Server?

Quelle est la cause?

Est-il sécuritaire de tuer ces processus?

+0

Read committed est la valeur par défaut dans SQL Server 2005, donc l'application peut l'utiliser lorsque ce n'est pas vraiment nécessaire. Les transactions attendent que les verrous soient libérés. – DOK

Répondre

0

Pouvez-vous nous fournir plus d'informations?

La commande définit uniquement le niveau d'isolation de la transaction à lire validée avant le démarrage de la transaction et n'est pas la cause du problème.

Je vous suggère d'essayer SQL profiler pour identifier la cause. Soyez prudent lorsque vous configurez des filtres dans le cas où il reçoit un grand nombre de transactions.

1

Lla réponse de votre earlier question aplies encore:

Non, SQL ne serait pas en cours d'exécution déclarations sur lui-même. Ces déclarations proviennent des applications web. Ils peuvent ne pas exister explicitement comme texte SqlCommand dans votre application, mais il sont plusieurs dizaines de milliers de lignes de code à partir divers frameworsk et ORM entre votre code et ce que atteint réellement SQL Server. Un exemple trivial est le Bening SqlConnection.Open() qui envoie un lot assez costaud pour initialiser les paramètres de session , un lot qui se termine par jeu niveau d'isolation de transaction de lecture commis ...

Que vous pouvez les tuer ou non est impossible de dire, car ils sont vos applications.

0

D'accord avec Remus Rusanu mais juste pour clarifier votre question exacte: "Définir le niveau d'isolation de la transaction read committed" n'est pas un "processus". C'est une déclaration qui dicte comment les déclarations qui proviennent de votre application seront traitées. Cela signifie que les requêtes exécutées dans le cadre de votre session (dans le cas de ColdFusion, une cfquery particulière, sauf si elles sont dans une transaction cftransaction) ne lisent que les données validées. Vous remarquerez probablement que si vous utilisiez un cftransaction, vous verriez un niveau d'isolation de transaction différent qui permettrait aux requêtes de lire des données locales non validées.

Questions connexes