Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Poor performance when you append data to a shared file-b
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
01308588
Message ID:
01310603
Vues:
27
Sure thing, here's one of them:
SELECT invitems.invnum,invitems.sequence,invitems.item_id,;
 items.source,items.sourcenum as conum,cohead.commcalcby ;
 FROM mydatabase!invitems ;
  LEFT OUTER JOIN mydatabase!items ;
   LEFT OUTER JOIN mydatabase!cohead ;
   ON items.sourcenum==cohead.conum ;
  ON invitems.item_id=items.item_id ;
 WHERE invitems.invnum=lnInvnum AND items.source="C" AND items.cb_id=0 ;
 GROUP BY items.sourcenum ;
 INTO CURSOR c_invoice_calculatecommission
And switched to this inner join results in huge speed improvement when in multiuser mode:
SELECT invitems.invnum,invitems.sequence,invitems.item_id,;
 items.source,items.sourcenum as conum,cohead.commcalcby ;
 FROM mydatabase!invitems ;
  INNER JOIN mydatabase!items ;
   LEFT OUTER JOIN mydatabase!cohead ;
   ON items.sourcenum==cohead.conum ;
  ON invitems.item_id=items.item_id ;
 WHERE invitems.invnum=lnInvnum AND items.source="C" AND items.cb_id=0 ;
 GROUP BY items.sourcenum ;
 INTO CURSOR c_invoice_calculatecommission
Just a heads up that I also use SET ENGINEBEHAVIOR 70 because of some ways that I use SQL-Select grouping.

There is an index tag on invitems.invnum.
There are typically 50 or fewer records that match the initial where clause (invitems.invnum=lnInvnum) out of 20,000+ records.
Brandon Harker
Sebae Data Solutions
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform