IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Signification de PREEMPTIVE_XE_GETTARGETSTATE et ...


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut Signification de PREEMPTIVE_XE_GETTARGETSTATE et ...
    Bonjour à tous,

    J'ai des lenteurs sur un serveur, et en utilisant un script de Brent Ozar un peu plus complet, je tombe sur PREEMPTIVE_XE_GETTARGETSTATE qui est en premier.

    Voici ce que j'obtiens:

    Nom : 2018-01-16 14_49_08-SQLQuery17.sql - Microsoft SQL Server.png
Affichages : 685
Taille : 43,0 Ko

    Malgré que je regarde ici, je ne comprends pas la signification et si c'est important : https://www.sqlskills.com/help/waits...ettargetstate/

    Pour le WRITELOG, il attend pour écrire dans le log, ça vient surtout d'une lenteur du disque? Est-ce qu'un nombre élevé de VLF peut être à l'origine aussi?

    Si vous avez une remarque sur les autres attentes dont je dois faire absolument attention, je suis preneur.

    Merci beaucoup.

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Hello,

    PREEMPTIVE_XE_GETTARGETSTATE est un type d'attente que tu peux exclure de ton résultat global. En effet il se produit lorsqu'un thread bascule en mode préemptif pour récupérer l'état d'une cible de sessions d'événements étendues. Le thread est obligé dans ce cas de sortir d'un contexte du process sqlservr.exe pour avoir accès à l'état d'une cible comme par exemple vérifier l'accès à un ficher xel. Donc on peut considérer que ce type d'attente n'est pas vraiment représentatif d'un problème de performance.

    Dans ton cas le temps moyen d'attente pour un WRITELOG reste correct (j'ai certains clients qui ont des valeurs bien plus élevées sans pour autant souffrir de problèmes de performance) et ne présage pas de problème lié au stockage vu de loin. Il peut simplement indiquer une importante activité transactionnelle avec beaucoup de transactions courtes concurrentes ou peut être un problème de fragmentation excessif causé par page splits (phénomène qui peut générer une quantité importante dans le journal lors des mises à jour de données).

    Moi j'irai plus vite regarder du côté des attentes PAGEIOLATCH_xxx et LCK_xxx dont les temps moyens sont anormalement importants.
    Tu peux avoir un problème de manque de mémoire ou un stockage ne répondant pas assez vite (même si pour l'hypothèse du stockage cela n'est à mon avis plus qu'un symptôme que le réel problème). Les LCK_xxx peuvent indiquent que l'acquisition des verrous prend du temps et cela peut être du à un manque d'index (scans au lieu de seek) ce qui pourrait par ailleurs être corréler aux attentes PAGEIOLATCH_xxx. Cela peut être aussi causé par des transactions trop longues avec peut être des requêtes longues à éxecuter (manque d'index? ) ou un mauvais niveau d'isolation de transactions.

    Bref ce ne sont évidement ici que des pistes à explorer et vérifier

    ++

  3. #3
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    Salut David,

    Ok merci pour les explications, je garde ça précieusement et je regarderai plus tard car j'ai déjà d'autres priorités que ce serveur...

  4. #4
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    Juste encore une info stp David, ici je remarque qu'SQL Server passe son temps à attendre des Lock, c'est du "uniquement" à un manque d'index? Sur cette DB de 100 GB, on a des blocked process une fois par semaine, qui bloque l'application complètement. L'owner de l'appli tue les sessions et ça repart. Mais je cherche à savoir ce qui fait ces blocked process. Donc j'ai fait un Xevent, que j'ai trouvé sur un article de Nicolas. Mais j'en profite pour voir les WAIT et je vois ça donc:

    Nom : 2018-01-18 14_00_06-SQLQuery25.sql -Microsoft SQL Server.png
Affichages : 551
Taille : 22,5 Ko

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    on a des blocked process une fois par semaine, qui bloque l'application complètement.
    Le mieux est de regarder du côté de l'événement blocked process report qui te génère un rapport des processus bloqués au où la situation de blocage se produit.

    Il faut ensuite exploiter ce rapport car tu as pas mal d'information de ce que côté - requêtes ou procédures stockées impliqués, sessions, ressources concernées, type de locks, niveau d'isolation de transaction etc ...)

    Possible que ce soit un index manquant mais il faut le vérifier ..

    ++

  6. #6
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    Ok merci, je n'utilise jamais XEvent, donc j'ai du pas mal chercher. Je peux laisser 2 semaines? Je sais que ma question est compliquée, mais est-ce gourmand en terme de consommation?

Discussions similaires

  1. la mémoire utilisée par un processus
    Par LN(a) dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 22/04/2006, 14h28
  2. minimiser la mémoire utilisée pour stocker de l'information
    Par midy dans le forum Général Python
    Réponses: 3
    Dernier message: 30/01/2006, 15h17
  3. [Info]Mémoire utilisée
    Par lr dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 24/10/2005, 10h34
  4. Supprimer la mémoire utilisée par les variables globales
    Par dnaprotector dans le forum OpenGL
    Réponses: 4
    Dernier message: 21/07/2005, 13h18
  5. [Info][Mémoire] utilisée pour un pointeur null
    Par thomas_strass dans le forum Langage
    Réponses: 14
    Dernier message: 04/11/2004, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo