Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Résoudre les problèmes liés au manque de threads de travail

Au fur et à mesure que votre instance connaît un trafic plus élevé avec une utilisation simultanée, elle peut manquer de threads de travail nécessaires pour traiter les demandes de session. Cela signifie que les sessions attendront que les threads de travail soient affectés pour traiter les demandes. Cela entraînerait très probablement des temps de traitement plus lents et entraînerait la rencontre de types d'attente tels que SOS_SCHEDULER_YIELD, THREADPOOL et CXPACKET.

Généralement, le problème est causé par l'un des éléments suivants :

  • De nombreuses connexions actives
  • Nombreuses requêtes de longue durée
  • Requêtes utilisant le parallélisme
  • Le processeur du serveur n'est pas assez puissant pour la charge de travail

Les remèdes les plus courants sont :

  • Réduire le nombre de connexions
  • Identifier et régler les requêtes de longue durée
  • Identifier et régler les requêtes en utilisant un degré élevé de parallélisme
  • Identifier et régler les requêtes avec le type d'attente du processeur
  • Identifier et régler les requêtes avec le type d'attente CXPACKET
L'alarme SQL - Running Out of Threads de Spotlight Cloud avertit l'utilisateur lorsque l'instance manque de threads de travail pour traiter les demandes de session.


Utilisez les tableaux de bord de diagnostic Spotlight Cloud pour résoudre le problème :

  1. Réduisez le nombre de connexions. Consultez le tableau de bord Sessions pour identifier le volume d'activité :

  2. Identifiez et ajustez les requêtes de longue durée :

    un. Utilisez le tableau de bord de l'analyseur de charge de travail pour voir les principaux SQL par temps d'activité. Cliquez sur la dimension SQL Statements et triez les requêtes par métrique Active Time :


    b. Utilisez le tableau de bord Workload Analyzer pour afficher les principaux SQL par degré de parallélisme. Optimisez les requêtes ou utilisez des indicateurs de requête dans les instructions de requête pour réduire l'utilisation du degré de parallélisme.

    I. Mettez en surbrillance la dimension Instruction SQL dans l'arborescence et cliquez sur l'icône représentant un hamburger pour ouvrir le sélecteur de métriques :


    II. Localisez le champ Degré de parallélisme et activez-le. Utilisez la souris pour faire glisser le champ vers le haut de la liste des champs


    III. Triez par colonne Degré de parallélisme pour identifier les requêtes avec les threads les plus élevés :


    c. Utilisez l'analyseur de charge de travail pour filtrer le SQL supérieur par type d'attente de processeur. Cliquez sur l'icône de type d'attente CPU sur la bannière et développez la dimension Instructions SQL. Ajustez les requêtes en conséquence :


    ré. Utilisez le tableau de bord Workload Analyzer pour filtrer les principaux SQL par Autre type d'attente. Cliquez sur l'icône Autre type d'attente sur la bannière. Développez la dimension Instructions SQL. Utilisez le volet Répartition des ressources pour identifier les requêtes avec le type d'attente CXPACKET. Ajustez les requêtes en conséquence :
Essayez Spotlight Cloud gratuitement !