Developpez.com - Rubrique SQL-Server

Le Club des Développeurs et IT Pro

SQL Server - Trop d'index tue l'index : supprimer les index inutiles !

Un tutoriel de Frédéric BROUARD

Le 2022-10-06 12:45:50, par SQLpro, Rédacteur
Bonjour,

Je vous propose cet article sur la suppression des index inutiles (et donc contre performants) dont il faut se débarrasser.

SQL Server - Trop d’index tue l’index : supprimer les index inutiles !

À vos commentaires !

Merci

Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft SQL Server
  Discussion forum
8 commentaires
  • SQLpro
    Rédacteur
    Je pense que je vais faire une série...

    A +
  • escartefigue
    Modérateur
    Excellente initiative

    J'aurais bien ajouté un petit laïus sur les index couvrants et un autre sur les index redondants.
    Peut être aussi ajouter quelques mots sur le facteur de filtrage (c'est tellement courant les index sur des colonnes ne pouvant prendre que 2 à 3 valeurs et qui n'ont pas d'usage couvrant...)
  • KyoshiroKensei
    Membre régulier
    merci , sujet intéressant.
  • SQLpro
    Rédacteur
    Envoyé par vbarr
    Merci, ça donne envie d'en apprendre plus, sur l'interprétation des statistiques par exemple !
    Comme aurais dit le grand Charles... Vaste sujet !

    Nous avions fait une présentation Arian Papillon et moi sur la chose dans le cadre des SQL Days chez Microsoft France il y a quelques années ... On doit la trouver encore sur le net...
  • vbarr
    Membre habitué
    Merci, ça donne envie d'en apprendre plus, sur l'interprétation des statistiques par exemple !
  • olivtone
    Membre habitué
    Super Fred comme d'habitude
  • Seaqwel
    Nouveau Candidat au Club
    Bonjour!

    Excellent article, comme d'habitude. Ne faudrait-il pas, peut être, y ajouter une toute petite précision qui concerne la manière dont cette DMV "compte" : elle ne compte pas le nombre de fois que l'index est utilisé - au sens où on l'entend habituellement - mais le nombre de requêtes qui ont été exécutées et qui contenaient l'index en question dans son plan d'exécution, ce qui est différent.

    Merci!
  • SQLpro
    Rédacteur
    Envoyé par Seaqwel
    Bonjour!

    Excellent article, comme d'habitude. Ne faudrait-il pas, peut être, y ajouter une toute petite précision qui concerne la manière dont cette DMV "compte" : elle ne compte pas le nombre de fois que l'index est utilisé - au sens où on l'entend habituellement - mais le nombre de requêtes qui ont été exécutées et qui contenaient l'index en question dans son plan d'exécution, ce qui est différent.

    Merci!
    Plus exactement :
    "
    Lorsqu’un index est utilisé, une ligne est ajoutée à sys.dm_db_index_usage_stats si aucune ligne n’existe déjà pour l’index. Quand la ligne est ajoutée, ses compteurs sont à zéro.
    "
    Extrait de la doc...
    https://learn.microsoft.com/fr-fr/sq...l-server-ver16

    Cela veut donc dire que cette vue contient les index qui ont fait l'objet une seule fois d'une requête soit pour une lecture, soit pour une mise à jour.

    A +