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 :

[SQL2008][SQL2012] Stat utilisation SP + Creation_time


Sujet :

MS SQL Server

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut [SQL2008][SQL2012] Stat utilisation SP + Creation_time
    Hello, j'utilise ces trois table pour avoir un aperçu de l'utilisation des procédures stockées.

    sys.dm_exec_query_stats
    sys.dm_exec_sql_text
    sys.all_objects

    Il y a un truc qui m'interpelle. Dans la colonne Creation_time j'ai des données qui remontent maximum à 2 ou 3 heures.

    Est ce que je dois en déduire que mon système à tellement peu de RAM que les choses ne reste pas en cache assez longtemps pour être réutilisé ?



    Je met en plus le code de la requête pour pas me faire engueuler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    SELECT 
    	DB_NAME(qt.dbid) DBName
    	,AO.type
    	,AO.name
    	,Qt.text AS Request
    	,qs.execution_count AS Execution_Count
    	,qs.total_worker_time/ISNULL(qs.execution_count, 1) AS AvgWorkerTime
    	,qs.total_worker_time AS TotalWorkerTime
    	,qs.total_elapsed_time/ISNULL(qs.execution_count, 1) AS AvgElapsedTime
    	,qs.max_logical_reads
    	,qs.max_logical_writes
    	,qs.creation_time
    	,DATEDIFF(Minute, qs.creation_time, GetDate()) AS Age_In_Cache
    	,qs.execution_count/ISNULL(DATEDIFF(Minute, qs.creation_time, GetDate()), 1) AS Calls_Per_Minute
    	,qs.execution_count/ISNULL(DATEDIFF(Second, qs.creation_time, GetDate()), 1) AS Calls_Per_Second
    FROM sys.dm_exec_query_stats AS qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
    left outer join sys.all_objects AO on AO.object_id=QT.objectid
    WHERE DATEDIFF(Minute, qs.creation_time, GetDate())>0
    ORDER BY qs.execution_count/ISNULL(DATEDIFF(Second, qs.creation_time, GetDate()), 1) DESC
    PS : Et ouais tant que j'ai pas le OK de mes chefs pour une modélisation je cherche d'autres fautifs.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Cela peut être des objets temporaires, y compris systèmes....

    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/ * * * * *

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Cela peut être des objets temporaires, y compris systèmes....

    A +
    Salut,
    En l’occurrence c'est des procédures stockées et des fonction développées par nous.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Attention, ce creation_time est l'heure de création du plan de requête. pas de l'objet (vue, requête, procédure).

    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/ * * * * *

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    Oui j'ai bien pensé.
    C'est l'heure ou le plan d’exécution est mis en cache si j'ai bien compris.

    C'est pour ça que ça m'étonne de ne rien avoir depuis plus de 2 ou 3 heures.
    Mais étant encore débutant je ne suis sur de rien _-_

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    les plans de requête / proc sont réutilisés car mis en cache !!!!

    Il serait peut être temps de se former à comment fonctionne un SGBDR....

    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/ * * * * *

  7. #7
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Tu peux crosschecker avec les compteurs tels que:
    - Buffer cache hit ratio
    - Page life expectancy

    2-3 heures c'est deja pas mal.
    Après ca va dépendre d'autres choses telles que l'activité du serveur, comment ton appli tourne...

    Question:
    Comment en es arrivé à regarder de ce coté la ?

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    Citation Envoyé par Ptit_Dje Voir le message
    Question:
    Comment en es arrivé à regarder de ce coté la ?
    La réponse la plus juste serait de dire que je fais une partie de pignata avec les différentes données de mon serveur sql.

    Mais disons que j'ai des problèmes de performances, probablement liés à la RAM.
    Le boss à demandé que j'optimise un peu tout ça car financièrement l'achat de nouvelles machines n'est pas envisageable pour le moment. Il a demandé a moi car je suis celui qui s'y intéresse sans avoir forcément les connaissances (Y parait que la volonté c'est important aussi ).

    En fouillant j'ai remarqué que j'ai au moins 500 procédures stockées et que certaines sont décliné jusqu’à 10 fois avec des suffixé du genre _1 _2 _test et même _Toto.
    Alors avant de distribué des baffes aux développeurs j'ai chercher un moyen d'avoir des stats d'utilisation.
    Et ce script me donne un partie de l'information.
    Mais malheureusement uniquement pour les données en cache...

    Et en me disant que sql n'a pas de raison de sortir un truc du cache sauf si il a besoin de la place pour y mettre autre chose. Je me suis demandé si une durée de vie de 3h en cache c'était normal ou pas.

    Voilà

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    En principe il ne faut pas descendre en dessous d'une durée de vie de 10 minutes (600 secondes).

    Donnez nous la config machine :
    • RAM, CPU, Disques (physique et config RAID)
    • la version / édition / bits de l'OS
    • la version / édition de SQL

    y a t-il d'autres logiciels installé sur le serveur en dehors de SQL Server (notamment anti virus et autres services divers)
    s'agit t-il d'un serveur virtuel ?
    Quelle est la taille de la base (sp_spaceused) ?
    Quelle est l'occupation des journaux (DBCC SQLPERF (LOGSPACE)) ?
    Quelle est la config des espace de stockage de la base de prod et de tempdb ?
    Quel est le but de l'appli/base ? Que fait-elle ?

    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. [SQL2008] [SQL2012] Replication
    Par Donpi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/01/2013, 13h06
  2. [SQL2008][SQL2012] Select From With(NoLock)
    Par Donpi dans le forum MS SQL Server
    Réponses: 27
    Dernier message: 19/10/2012, 15h00
  3. [SQL2008][SQL2012] Index Clusterisé Vs Include
    Par Donpi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/10/2012, 14h56
  4. [SQL2008][SQL2012] Contraints complexes
    Par Donpi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/10/2012, 09h23
  5. [SQL2008][SQL2012] 3 petites questions en vrac
    Par Donpi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/07/2012, 16h19

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