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

Développement SQL Server Discussion :

Mesures statistiques et cache [2014]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Par défaut Mesures statistiques et cache
    Salut,

    J'aimerai comparer 2 requêtes différentes sur une base en production :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SET STATISTICS IO ON;
    SET STATISTICS TIME ON;
    DBCC DROPCLEANBUFFERS;
    DBCC FREEPROCCACHE;
    Les 2 dernières permettent les mesures sans se baser sur le cache, mais sur une base en production c'est un peu problématique de vider ce cache non ?

  2. #2
    Membre actif
    Homme Profil pro
    unix
    Inscrit en
    Septembre 2016
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Septembre 2016
    Messages : 83

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    SET STATISTICS TIME vous détaille la quantité de temps CPU consommé par la requête, ainsi que sa durée totale d'exécution.
    Si le temps CPU est supérieur à la durée d'exécution, c'est que la requête a été parallélisée.

    SET STATISTICS IO vous détaille les IOs, en donnant :
    • les lectures logiques (faites directement en RAM)
    • les lectures physiques en avance de phase : données récupérées sur les disques et chargées en RAM avant que le moteur ne les traite
    • les lectures physiques : données récupérées sur les disques au moment de les traiter car elles n'étaient pas déjà en RAM
    • dans le cas des index columnstore, les segments éliminés et lus, et d'autres éléments


    En effet toute modification de données dans tout bon SGBDR se fait uniquement en RAM, vitesse d'accès oblige.

    DBCC DROPCLEANBUFFERS, quand on souhaite comparer les performances de deux requêtes, me semble être peu intéressant.
    Cela vous permet de tester la performance des disques, et il faudrait, pour bien faire, l'exécuter entre les deux requêtes.
    Quoi qu'il en soit, cette instruction est globale à l'instance et évince de la RAM toutes les pages qui n'ont pas été modifiées depuis qu'elles sont été copiées depuis les disques, ou depuis qu'elles ont été persistées sur disque après leur modification. Par ailleurs, cette instruction est globale à l'instance, donc si vos collègues travaillent sur la même que vous, ils vont se retrouver avec des lenteurs pendant quelques minutes. On imagine aisément le désagrément causé si l'on exécute une telle instruction en production : ce sont les disques qui vont chauffer !

    DBCC FREEPROCCACHE évince du cache tous les plans de requête. Cette instruction est aussi globale à l'instance lorsqu'on ne lui passe pas en paramètre un handle de plan pour en évincer un en particulier et forcer ainsi sa recompilation.
    En effet toute requête est compilée en un plan qui est réutilisé lors des exécution subséquentes de la même requête (au caractères près). Ceci existe car le processus de compilation est gourmand en temps CPU; donc si on devait optimiser les requêtes comme elles arrivent, on consommerait plus de CPU à les optimiser qu'à les exécuter.

    Cette dernière instruction est intéressante lorsqu'on teste les performances des requêtes sous deux versions de l'optimiseur, c'est à dire au moins sous SQL Server 2014.
    En effet, sous cette version, la base de données en mode de compatibilité 120 utilise le nouvel optimiseur par défaut; un niveau de compatibilité inférieur utilise l'ancien par défaut.
    Sous SQL Server 2016, l'option de configuration de base de données LEGACY_CARDINALITY_ESTIMATION permet de conserver le mode de compatibilité 130 tout en utilisant l'ancien optimiseur.

    Tout cela pour dire qu'il faut bien comprendre l'effet de chacune de ces instructions. Les deux dernières que vous donnez sont aussi répandues qu'incomprises

    @++

  4. #4
    Membre confirmé
    Homme Profil pro
    web entrepreneur
    Inscrit en
    Novembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : web entrepreneur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 117
    Par défaut
    Ok, merci bien Elsuket pour ces précisions sur les 2 DBCC.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin info sur "LIRE STATISTIQUES CACHE"
    Par bewidia dans le forum 4D
    Réponses: 1
    Dernier message: 11/10/2011, 13h54
  2. [FERank] Mesure d'audience et statistiques
    Par foxeye dans le forum Mon site
    Réponses: 1
    Dernier message: 02/07/2010, 12h18
  3. Mesurer les statistique d'un site
    Par pierrot10 dans le forum Statistiques
    Réponses: 0
    Dernier message: 19/07/2009, 17h10
  4. Tests statistiques mesures répétées
    Par Petru16 dans le forum SAS STAT
    Réponses: 3
    Dernier message: 09/06/2009, 08h44
  5. Outil de statistique, mesure -> requête SQL
    Par CaLeDo dans le forum Outils
    Réponses: 2
    Dernier message: 28/01/2008, 16h16

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