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

MS SQL Server Discussion :

Erreur lors de la récupération de plan d'exécution


Sujet :

MS SQL Server

  1. #1
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut Erreur lors de la récupération de plan d'exécution
    Bonjour,

    J'ai une requête qui me permet de récupérer les requêtes qui prennent beaucoup de ressources (histoire de vérifier si c'est normal ou si elle est mal faite).
    Je récupère le plan_handle via la vue sys.dm_exec_query_stats et après je récupère le plan d'exécution xml via la vue sys.dm_exec_query_plan.

    Depuis quelques temps sur certaines requêtes lorsque je veux récupérer le plan xml j'obtiens cette erreur :

    Msg*0, Niveau*11, État*0, Ligne*82
    Une erreur grave s'est produite sur la commande actuelle. Les résultats éventuels doivent être ignorés.

    La requête d'origine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT PLAN_HANDLE
    	,EXECUTION_COUNT
    	,TOTAL_WORKER_TIME
    	,LAST_WORKER_TIME
    	,MIN_WORKER_TIME
    	,MAX_WORKER_TIME
    	,DB_NAME(VERIF_BDD.DBID)
    FROM SYS.DM_EXEC_QUERY_STATS 
    	CROSS APPLY SYS.DM_EXEC_SQL_TEXT(SYS.DM_EXEC_QUERY_STATS.PLAN_HANDLE) AS VERIF_BDD
    WHERE MAX_WORKER_TIME >= 500000
    	AND EXECUTION_COUNT >= 100
    Aucune aide par MP, utilisez le forum.

  2. #2
    Membre averti
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Points : 357
    Points
    357
    Billets dans le blog
    1
    Par défaut
    Bonjour ,

    Le syntaxe de la requête est correct, je viens de l'exécuter chez moi, peut-être un problème avec SSMS , essaye de l'exécuter avec autre ordinateur.
    मैं एक छात्र हूँ |

  3. #3
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Ca ne change rien.
    Et globalement sur d'autres plans ça fonctionne bien.
    Aucune aide par MP, utilisez le forum.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par J0r_x Voir le message
    Une erreur grave s'est produite sur la commande actuelle. Les résultats éventuels doivent être ignorés.
    Il s’agit malheureusement d’un message d’erreur "générique" référencé dans nombre de "Connect" , et ce, dans des contextes très différents, qui n’ont rien à voir les uns avec les autres !
    Ces erreurs sont généralement corrigées par l’application des Services Packs et autres correctifs, etc. fournis par Microsoft.

    Merci de préciser la version exacte de votre Instance SQL Server, et vérifier que votre instance est bien à jour (Services Packs notamment).

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Et aussi quelle version de SSMS vous utilisez car l'erreur peut venir d'une mauvaise adéquation instance SQL / client SSMS.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Alors en version de sql serveur je suis en 13.0.4001.0 (correspondant à la SP1)
    Pour SSMS j'ai essayé avec la version 14.0.17119.0 et la version 13.0.16000.28 et le résultat est le même.

    Sachant que la requête est exécutée via un procédure stockée qui est lancé par un job sql et j'obtiens aussi l'erreur.
    Aucune aide par MP, utilisez le forum.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Vous avez mélangé les SQL_handle et les PLAN_handle vous appliquez la fonction de récup du texte de requête (sys.dm_exec_sql_text) à l'identifiant du plan. Il faut utiliser l'identifiant du SQL.
    De plus l'obtention du handle de plan ne sert à rien, mieux vaut le texte de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT text AS SQL_query
    	   ,execution_count
    	   ,total_worker_time
    	   ,last_worker_time
    	   ,min_worker_time
    	   ,max_worker_time
    	   ,DB_NAME(VERIF_BDD.dbid) AS database_name
    FROM   sys.dm_exec_query_stats AS s
    	    CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) AS VERIF_BDD
    WHERE  max_worker_time >= 500000
      AND  execution_count >= 100
    D'autre part les vues systèmes et DMV ont des identifiants SQL (noms des vues, colonnes...) en minuscule et non en majuscule. Ceci peut avoir son importance sur une instance avec collation CS

    Enfin, il est intéressant de récupérer aussi le plan de requête...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2008, 13h44
  2. Réponses: 20
    Dernier message: 04/01/2008, 11h08
  3. Réponses: 7
    Dernier message: 15/11/2006, 10h14
  4. [MySQL] Erreur lors d'une récupération de données avec critère de sélection
    Par Squalthor dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 08/11/2006, 11h28
  5. Réponses: 1
    Dernier message: 04/06/2006, 16h08

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