Page 1 sur 1

Ralentissement des logiciels xxxx2SQL

Posté : 19 déc. 2014, 21:15
par jturlier
Bonjour,
certains utilisateurs de MySQL (uniquement, pas postgre) peuvent se trouver confrontés à des temps de réponse trèèès longs.
Dans ce cas, je vous conseille de vérifier que dans le(s) fichier My.ini (il y en a 2 dans le cas de Wamp), les lignes correspondant à INNODB sont bien dé-commentées (ôter le # qui est en début de ligne).
Cette question revient de façon récurrente.

Pour information, sur une DB locale, en chargement initial et avec une machine rapide (indice 7.8 processeur, disque et mémoire), on tourne à environ 4/5 enregistrements à la seconde aux alentours de 650000 enregistrements dans la table détail. Dans le cas où il faudrait plusieurs secondes par enregistrement, je vous conseille donc de vérifier que vous n’êtes pas concernés.
Pour les bases distantes, il est peu probable que les tables INNODB ne soient pas paramétrées, mais ça pourrait arriver. Par contre, vous êtres tributaires du réseau.

Jean

Re: Ralentissement des logiciels xxxx2SQL

Posté : 26 févr. 2015, 12:02
par helmain
Suite à phénomène de ralentissement très récent en local, Jean m'a demandé de créer un index sur recdateTZ, attention pas d'unicité !!
Le simple ajout de cet index à supprimé immédiatement le ralentissement qui était d'environ deux secondes par enregistrement.

Re: Ralentissement des logiciels xxxx2SQL

Posté : 27 févr. 2015, 10:21
par jturlier
helmain a écrit :Suite à phénomène de ralentissement très récent en local, Jean m'a demandé de créer un index sur recdateTZ, attention pas d'unicité !!
Le simple ajout de cet index à supprimé immédiatement le ralentissement qui était d'environ deux secondes par enregistrement.
Salut Jean-Mi,
merci pour l'info, je vais modifier la dll d'accès à la DB pour ajouter cet index. Je ne pensais pas qu'il aurait un tel impact, mais j'aurais dû m'en douter et y réfléchir un peu plus.
A bientôt

Re: Ralentissement des logiciels xxxx2SQL

Posté : 27 févr. 2015, 10:43
par Météo Villarzel
Bonjour,
Oui l'impact est vraiment spectaculaire, je suis passé d'un enregistrement toute les 2 secondes à 10 par secondes.

Bonne journée.

Re: Ralentissement des logiciels xxxx2SQL

Posté : 28 févr. 2015, 08:31
par jturlier
Bonjour,
vous pouvez exécuter la requête suivante pour créer un index :
ALTER TABLE `Nom_de_la_base_de_données`.`Nom_de_la_table` MODIFY COLUMN `recdateTZ` BIGINT(20) NOT NULL,
ADD INDEX `Index_2`(`recdateTZ`);
ALTER TABLE `Nom_de_la_base_de_données`.`minimaxi_Nom_de_la_table` MODIFY COLUMN `recdateTZ` BIGINT(20) NOT NULL,
ADD INDEX `Index_2`(`recdateTZ`);

Attention, n'oubliez pas d'espace, les " `" sont trompeurs, si on n'a pas d'espace dans les noms de tables, on peut très bien ne pas les mettre et ça devient beaucoup plus lisible !

Jean

Re: Ralentissement des logiciels xxxx2SQL

Posté : 01 mars 2015, 14:06
par courtil
Bonjour Jean,

Cette amélioration s'applique telle à Data2sql version Cumulus ?

Lors de l'écriture d'un " SELECT" doit on inclure l' ID dans la ligne de commande ??

Exemple ??

Code : Tout sélectionner

// Récupération des données sur les dernières 48 heures avec un tri ascendant sur le timestamp
$sql = "SELECT tstamp, outdoortemperature, windchill, dewpoint, outdoorheatindex  FROM data where tstamp >= '$start' and  tstamp <= '$stop' ORDER BY 1";  
$query=mysqli_query($conn,$sql);  
Merci de tes informations

Cordialement

Michel

Re: Ralentissement des logiciels xxxx2SQL

Posté : 01 mars 2015, 14:48
par Météo Villarzel
Salut,

Ceci est vraiment utile si on reconstruit entièrement la base de données, voici comment procéder (merci Jean-Michel)

Depuis PhpMyAdmin
tu vas dans la structure de ta table data :
sql1.jpg
Dans la zone Créer un index sur 1 colonne, tu cliques sur "Exécuter"

Et tu remplis les zones comme je l’ai fait ci-dessous et tu valides.
sql2.jpg
A+

Re: Ralentissement des logiciels xxxx2SQL

Posté : 01 mars 2015, 18:10
par jturlier
courtil a écrit :Cette amélioration s'applique telle à Data2sql version Cumulus ?
Salut Michel,
Cette procédure s'applique quel que soit le programme puisque la base de données est commune. La référence à DATA2SQL est inexacte car il n'est plus supporté.
courtil a écrit :Lors de l'écriture d'un " SELECT" doit on inclure l' ID dans la ligne de commande ??
Qu'appelles-tu l'ID ? S'il s'agit de la référence de la database, ça dépend du logiciel que tu utilise pour accéder à MySQL. Ca ne gène pas de la lettre même si elle n'est pas nécessaire. Si elle l'est et que tu ne la mets pas tu auras une erreur qui te le dira.
Météo Villarzel a écrit : Ceci est vraiment utile si on reconstruit entièrement la base de données
Comme l'a dit Pierre-André, c'est plus important quand tu fais un chargement initial. Mais personnellement je recommande de le faire car certains futurs programmes seront bien contents de tourner un peu plus vite. Ce sera le cas du logiciel qui crée les variables pour remplacer les fichiers NOAA et statistiques XML dans les scripts de NOAACompare.
C'est aussi conseillé quand on utilise des views un peu tordues avec des "select" imbriqués. (il ne faut pas oublier qu'une "view" n'existe pas physiquement, mais qu'il s'agit en fait d'une requête qui s'exécute à chaque fois qu'on y fait référence, ce qui fait que l'obtention des données peut être nettement plus longue que celles d'une table physique)

Bonne soirée

Jean