Vous connaissez la loi de Pareto ? Elle stipule que dans tout système, 20% des ressources génèrent 80% de la productivité. Les mauvaises langues ajoutent même que c'est récursif.
Inversement, 20% des points de mauvaise qualité générent 80% des pertes.
J'ignore si c'est vrai parmi nos chers gouvernants, mais en ce qui concerne les performances d'une base de données, ça marche. Si 20% des requêtes font presque tout le boulot, 20% des requêtes, pas forcément les mêmes, sont responsables de 80% des ralentissements.
C'est facile à démontrer.
Une bonne vieille trace de derrière les fagots dans SQL Server (gestionnaire de profils pour les initiés) pour espionner pendant quelques heures qui fait quoi, et voilà. Un petit tri par ordre décroissant de gloutonnerie mémoire ou I/O disque par dessus, et les coupables se retrouvent immédiatement sous les feux de la rampe.
C'est ce que je fais dorénavant sur chaque serveur SQL que je suis amené à auditer. Et ça marche à tous les coups. Suffit ensuite d'étrangler le coupable et le convaincre de modérer sa consommation de ressources (un chti t'index ou une chtite correction de bug). Le résultat est généralement spectaculaire en terme d'améliorations de performances. Le client est ravi, son serveur vient de prendre un coup de jeune et prolonge la vie de son application pour quelques années.
Je lui fais un petit discours sur la chance qu'il a eu de me rencontrer et lui présente une grosse facture. Il paye avec un grand sourire et me recommande à ses amis.
Moralité de la loi de Pareto : concentrons-nous d'abord sur ce qui paye. Et passons le reste du temps sur la plage.
Retour à la page d'accueil