Fork me on GitHub
Bienvenue, Invité
Nom d'utilisateur Mot de passe: Se souvenir de moi

Performance Base de donnée
(1 visualisation(s)) (1) Invité
  • Page:
  • 1

SUJET: Performance Base de donnée

Performance Base de donnée il y a 1 an, 9 mois #20785

  • lvalter
  • Hors ligne
  • Fresh Boarder
  • Message: 1
  • Karma: 0
Un problème de lenteur survient quand on Édite une fichier action et que la base contient plus de 100 000 Fiches. le champ société devient alors trop long a générer.
Il faut je pense afficher le nom de la société mais pas de possibilité de la changer dans le mode comm/action/fiche.php?action=edit
J'ai mis en commentaire la ligne 681 du fichier /dolibarr-2.8.0/htdocs/comm/action/fiche.php. On passe de 40s à - d'une seconde pour afficher la page.
C'est pas important de changer la société du contact dans la fiche action.

Voici les modifs :
-- #print $html->select_societes($act->societe->id,'socid',1,1);
++ print '<input type=hidden name=socid value='.($act->societe->id).'>'.($act->societe->id?$act->societe->getNomUrl(1):$langs->trans("None"));
Dernière édition: il y a 1 an, 9 mois par lvalter.

Re: Performance Base de donnée il y a 1 an, 9 mois #20800

  • regis
  • Hors ligne
  • Administrateur
  • Message: 3480
  • Karma: 117
sinon tu peux mettre à "oui" l'option "Utiliser un formulaire de recherche pour choix d'un tiers (plutôt que liste déroulante)" dans la configuration du module Tiers, ainsi tu auras une recherche Ajax au lieu de la liste déroulante
Régis Houssin
Contributeur Dolibarr
----------------------------------------
Offre SaaS de Dolibarr
Plateforme de développement Dolibarr
----------------------------------------
Merci de nous aider en effectuant un don via le lien de la page d'accueil.
Et à défaut merci à tout ceux qui cliquent sur les pubs.

Re: Performance Base de donnée il y a 1 an, 7 mois #21879

  • khunphil
  • Hors ligne
  • Fresh Boarder
  • Message: 14
  • Karma: 0
Bonjour

La liste deroulante est en effet peu pratique sur une liste de 35000 produits dans mon cas. D'autre part, Ajax est trop lent dans la recherhce.

Quand on passe une commande client (dans ce cas precis), on a sous les yeux la ref exacte de ce que l'on doit saisir donc a part les erreurs de saisie, la fonction "Recherche Ajax" est pas forcement pratique meme si agreable a regarder.
Il y a dans le menu a gauche un champ PRODUITS qui fonctionne parfaitement et est tres rapide lorsque l'on connait la reference.
Pourquoi ne pas implementer cela dans la module saisie de commande Client ? Ou comme 3eme choix apres Liste Deroulante / Ajax. C'est a mon avis la recherche la plus simple a integrer.

Car dans mon cas, la lenteur de saisie est un point negatif important contre la mise en place de Dolibarr. Et j'essaie de tout faire pour l'integrer dans la societe.

Philippe

Re: Performance Base de donnée il y a 1 an, 7 mois #21882

  • grandoc
  • Hors ligne
  • Gold Boarder
  • Message: 319
  • Karma: 5
Bonjour
dans la 2.9, le système de sélection par référence ou libellé est implémenté, et fonctionne très bien, en rentrant le début d'une référence ou d'un libellé, la liste déroulante s'affine, et il ne reste finalement que le produit recherché

@+
Philippe
"J'aime les sirènes...
j'aime pas les arrêtes dans le poisson !"
Trésorier de l'association Dolibarr
ATOO.NET
Version 3.2 alpha
sur serveur Linux 2.6.34.6
Apache/2.0.59 (Unix)
5.2.5-pl1-gentoo
MySQL 5.0.44

Re: Performance Base de donnée il y a 1 an, 7 mois #21901

  • khunphil
  • Hors ligne
  • Fresh Boarder
  • Message: 14
  • Karma: 0
Bonjour

Merci Philippe mais je ne vois pas la difference sur ce point avec la 2.8.1. Pour que la liste deroulante soit correcte, je dois la charger entierement (32000 produits) ce qui a distance represente 30s d attente.

Est-il possible de modifier le code pour avoir juste un code a rentrer et tapper ENTER (exactement comme dans la colonne de gauche), mais ceci dans un bon de commande client ?

Philippe

Re: Performance Base de donnée il y a 1 an, 7 mois #21933

  • eldy
  • Hors ligne
  • Administrateur
  • Message: 2904
  • Karma: 92
Le pb est que la recherche cherche les caractères saisie n'importe ou dans le champ et ceci sans index. Et meme si il y en a un il ne sera pas utilisé car la recherche est un like '%x'.

Tu peux faire les manip suivantes pour corriger:

1) D'abord créer l'index en base avec la commande
ALTER TABLE llx_product ADD INDEX idx_product_label (label);

2) Ensuite pour pouvoir utiliser l'index il faut modifier le fichier html.form.class.php la ligne:

if ($ajaxkeysearch && $ajaxkeysearch != '') $sql.=" AND (p.ref like '%".$ajaxkeysearch."%' OR p.label like '%".$ajaxkeysearch."%')";

par

if ($ajaxkeysearch && $ajaxkeysearch != '') $sql.=" AND (p.ref like '".$ajaxkeysearch."%' OR p.label like '".$ajaxkeysearch."%')";

Dis nous si cela corrige ?

Re: Performance Base de donnée il y a 1 an, 7 mois #21943

  • khunphil
  • Hors ligne
  • Fresh Boarder
  • Message: 14
  • Karma: 0
Bonjour

J'ai fait le test. Cela va en effet un peu plus vite mais la liste chargee est toujours longue a etre transferee. De plus cela genere un bug car par exemple, lorsque je rentre la ref 3900036, je me retrouve dans la liste deroulante avec des refs en 12000 etc ... Ce bug ne se produit pas lorsque lon fait la recherche en intranet, bcp + rapide.
Lorsque j'efface le 6 final et met un 5, je retrouve bien les bon articles .. puis j'efface le 5 et met un 6 (code original) et je retrouve les produits concernes... Il semblerait qu'Ajax ait du mal a gerer les temps d'attente trop long ...

J'ai meme retire la fonctionnalite de recherche sur le label, mais cela reste toujours long.

Est-il possible ici de mettre un champp <input type=text....> ? J'ai essaye mais le prix unitaire ne passe pas en POST dans ce cas ... Pourrais-tu m'aider a generer cette possibilite de recherche.

Merci

Re: Performance Base de donnée il y a 1 an, 6 mois #22034

  • eldy
  • Hors ligne
  • Administrateur
  • Message: 2904
  • Karma: 92
Avec la version 2.9, il y a des corrections la dessus.
De plus une option apparait PRODUCT_DONOTSEARCH_ANYWHERE à mettre à 1 dans constante - divers et qui permet de permettre aux recherches d'utiliser l'index en base.
  • Page:
  • 1
Temps de génération de la page: 0.12 secondes