dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Dolibarr-dev] ajout bouton supprimer sur la fiche produit si ce de


From: Régis Houssin
Subject: RE: [Dolibarr-dev] ajout bouton supprimer sur la fiche produit si ce dernier n'est pas utilisé
Date: Sat, 8 Apr 2006 17:55:43 +0200

> Régis Houssin a écrit :
> > bonjour,
> >
> > tout est dans le titre,
> > par contre j'ai ajouté une fonction dans la classe product qui vérifie
> si le
> > produit est utilisé dans une propal, commande, facture ou contrat.
> >
> > j'ai fait une requête avec des OR car avec des AND il me mettait le
> bouton
> > si un de ces 4 modules ne contenait pas le produit.
> > par contre la requête met un temps fou a s'exécuter.
> >
> En effet, ta requête est mauvaise.
> Si chaque table a une taille de 1000, le temps de traitement sera de
> 1000 puissance 4 (produit cartésien de 4 tables sur du fait qu'il n'y a
> pas de jointures).
> 
> Pour résoudre cela, il te faut faire 4 requetes. Dans ce cas, le temps
> de traitement sera de 4 x 1000 et vu que le champ sur lequel on compte
> est indexé, ce sera meme 4x1 (l'index faut passer le cout du full scan
> de 1000 à 1*alpha avec alpha tres proche de 1).
> 
> Bref, tes temps auront un indice de perf de presque 4 en faisant 4
> requetes de suite alors qu'ils ont un indice de perf de 1000000000000
> par ta methode (Et je parle pas de la mémoire et swap utilisée...).
> Bilan: les 4 requetes sont 150000000000 fois plus rapide que ta requete
> unique et meme plus encore si on imageine que les tables ont plus de
> lignes. Autant te dire que ce ne passe même pas sur une table de cent
> milles lignes de factures, contrats ou autres.
> 
> En résumé: Faire 4 appels et oops, c'est résolu.

Ok j'ai alpha pas tout compris mais je vais diviser en 4 requête au lieu
d'une dès que j'aurais le temps. ;-))

Merci Laurent
Régis






reply via email to

[Prev in Thread] Current Thread [Next in Thread]