Le 05/01/2012 13:11, MoYo a écrit :

>> - Par contre j'ai constaté sur mon pc et sur leur serveur un bug 
>> assez handicapant sur la recherche :
>> Depuis la liste des logiciels, avec affichage des colonnes nb install
>> - nb licences, si on fait une recherche su type logiciel du pc ayant
>> pour nom XXX, la requête ne s'arrête jamais voir le serveur Mysql part
>> en vrille.

C'est critique lorsqu'il y a beaucoup de licences

Et dans la migration (je sais plus de quelle version, 0.72 ou 0.78) on
créait autant de licences que de versions (sauf pour les "free") d'où
l'importance de la licences par défaut dans la base avant la migration.

Chez nous, on avait corrigé la base "avant" de migrer.


> C'est la limite du moteur de recherche avec de grosses bases.
> Ces recherches étant très complexes avec des jointures énormes cela peut
> poser des problèmes dans certains cas.
> Sur ma base de test je viens de refaire ta recherche et je n'ai aucun
> problème par exemple.

Il y a effectivement des cas on le nombre de jointures fait partir en
vrille le moteur de recherche.

ça doit pouvoir se régler au niveau MySQL
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_join_size

Pourquoi ne pas prévoir une option de config afin de positionner cette
limite lors de l'utilisation du moteur de recherche ?

Après il faut traiter l'erreur pour afficher un message clair.

Autres idées, pour les grosses bases (config)

        - ne pas proposer la recherche sur "all"
        - sélectionner le "nom" comme critère par défaut
          (au lieu de éléments visualisés)

Pour info, nous testons depuis quelques jours l'exécution du moteur de
requête sur le répliqua (backport de ce qui a été codé en 0.80 sur notre
veille 0.78), mais c'est pas terrible, on a souvent des décalages très
perturbant (couramment quelques minutes, jusqu'à 2h, bon c'était, je
pense exceptionnel)

Genre : suppression d'un PC
        => retour à la liste, où il est toujours présent.


Autres requêtes très ennuyeuses, lors des transferts

SELECT `glpi_computers_softwareversions`.`id`
FROM `glpi_computers_softwareversions`
LEFT JOIN `glpi_computers`
ON (`glpi_computers_softwareversions`.`computers_id`
        = `glpi_computers`.`id`)
WHERE `glpi_computers`.`id` IS NULL

SELECT `glpi_computers_softwareversions`.`id`
FROM `glpi_computers_softwareversions`
LEFT JOIN `glpi_softwareversions`
ON (`glpi_computers_softwareversions`.`softwareversions_id`
        = `glpi_softwareversions`.`id`)
WHERE `glpi_softwareversions`.`id` IS NULL

(plusieurs minutes sur notre prod)

Faudrait voir si elles restent vraiment utiles ?


Remi.


P.S. trop bavard, moi, ce soir

_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to