Insights / Performance

Pourquoi le système est-il si lent ? Trouver la cause réelle

Lorsqu'un écran ou un rapport commence à ralentir, les solutions rapides sont tentantes. Une approche calme et méthodique permet de trouver la cause réelle et de la résoudre durablement.

· 3 min de lecture

Baies de serveurs dans un centre de données lumineux

Lorsqu'un écran met 30 secondes à charger ou qu'un rapport ne se termine pas, la pression pousse à agir immédiatement. Acheter un serveur plus puissant. Faire une modification rapide de la base de données. Enregistrer une copie des résultats pour qu'ils chargent plus vite. Tout cela peut aider. Mais sans savoir pourquoi c'est lent, impossible de dire si la correction durera ou si elle ne fait que masquer le problème jusqu'au mois prochain.

Je préfère une approche stable, étape par étape. C'est généralement plus rapide au final, et beaucoup plus facile à expliquer aux personnes qui financent le projet.

D'abord, déterminez précisément ce qui est lent

Je commence par être précis. Quel écran ou quel rapport ? Pour quel client, quelle plage de dates ou quelle recherche ? Est-ce lent à chaque fois, ou seulement le lundi matin ? La base de données est-elle réellement surchargée, ou le délai se situe-t-il ailleurs ?

Ensuite, je mesure, afin d'avoir un chiffre « avant » clair pour comparer après chaque changement. Je suis prudent lors des tests sur le système en production. Une opération inoffensive lorsqu'elle est exécutée une fois peut ralentir tout le monde si elle est répétée en boucle.

Examinez comment la base de données effectue le travail

Une base de données décide elle-même comment trouver les informations demandées, un peu comme une personne choisissant son itinéraire dans un entrepôt. La plupart des bases de données peuvent vous montrer l'itinéraire choisi, et c'est souvent là que se trouve la réponse.

Parfois, la base de données lit chaque enregistrement d'une table immense juste pour en trouver quelques-uns. Parfois, elle a mal évalué la quantité de données à traiter parce que ses propres statistiques sont obsolètes. Parfois, la manière dont une recherche est écrite l'empêche d'utiliser un raccourci existant. Voir l'itinéraire permet de savoir où le temps est perdu, afin de corriger la cause réelle au lieu de deviner.

Ajoutez des raccourcis avec prudence

La solution la plus courante pour une base de données lente est un index. Cela fonctionne comme l'index à la fin d'un livre : il permet à la base de données d'accéder directement aux bons enregistrements au lieu de tout lire.

Les index ne sont cependant pas gratuits. Chacun occupe de l'espace et ajoute un peu de travail supplémentaire à chaque fois que des données sont enregistrées ou modifiées. En ajouter trop peut accélérer un rapport tout en ralentissant l'écran de commande utilisé toute la journée par le personnel. J'examine donc ce qui existe déjà et ce que le système fait le plus souvent, et je teste chaque changement par rapport à l'utilisation quotidienne normale, pas seulement sur le rapport lent.

Arrêtez de faire un travail inutile

Un nombre surprenant de systèmes lents font simplement trop de choses. Charger 5 000 enregistrements pour n'en afficher que 20. Tout récupérer pour ensuite filtrer après coup. Rechercher la même liste de catégories de produits encore et encore. Faire un aller-retour séparé vers la base de données pour chaque ligne d'une commande au lieu de tout obtenir en une seule fois.

Éliminer ce travail inutile fait souvent la plus grande différence. Cela demande de la minutie, car chaque changement doit toujours produire exactement les mêmes résultats qu'auparavant.

Vérifiez s'il s'agit vraiment de la base de données

La base de données est souvent blâmée, mais le délai peut se situer n'importe où entre le clic et l'écran. L'application peut faire la queue pour accéder à la base de données, envoyer trop de données sur le réseau ou passer beaucoup de temps à préparer la page.

Je chronomètre donc chaque étape séparément. Après une correction, je vérifie qu'elle tient la route lorsque beaucoup de personnes utilisent le système simultanément, pas seulement lors d'un après-midi calme. Et je note ce qui a été modifié et pourquoi, afin que si cela ralentit à nouveau plus tard, la personne suivante sache où chercher.

L'approche en une ligne

Trouvez, mesurez, changez une chose, et mesurez à nouveau. Le but n'est pas de rendre un rapport impressionnant. C'est de rendre le système plus rapide pour tout le monde, sans rien casser au passage.

← Tous les insightsDiscutons de votre système