Message de rapport:
 

Re: LENTEUR CS

Sujet: Re: LENTEUR CS
par Anonyme sur 30/5/2005 14:50:00

Bonjour,

Je ne passe plus par cette requete horrible et affreuse. Voila aujourd'hui ce que ca donne :

req est une chaîne= " SELECT   StopBtl,Rebut,Vendue,Bouteille.Observations,DateOrigine,IDBouteille,NumMesser,NumLot,NumFabrication, " +...
" CategorieActuel,Fournisseur.Nom,Emballage.Type,lot.IDLot,lot.StopLot,lot.Categorie FROM "+...
" Bouteille,Lot,Emballage,Fournisseur WHERE lot.IDLot = Bouteille.IDLot AND Emballage.IDEmballage=lot.IDEmballage AND Fournisseur.IDFournisseur=lot.IDFournisseur"
Resultat_Bte est une Source de Données

SI CHP_NumMesser<>Null ALORS
	req+= " AND Bouteille.NumMesser="+CHP_NumMesser
FIN

SI CHP_NumLot<>Null ALORS
	req+= " AND lot.NumLot="+CHP_NumLot
FIN

SI CHP_NumFabrication<>Null ALORS
	req+= " AND Bouteille.NumFabrication="+CHP_NumFabrication
FIN

SI Combo_Emballage<>Null ALORS
	HLitRecherche(Emballage,Type,Combo_Emballage..ValeurAffichée,hIdentique)
	SI HTrouve(Emballage) ALORS
		req+= " AND lot.IDEmballage=" + Emballage.IDEmballage	
	FIN
FIN

SI COMBO_Categorie<>Null ALORS
	SELON typerech
		CAS RECH_BTE :
			req+= " AND Bouteille.CategorieActuel="+(COMBO_Categorie-1)
		CAS RECH_LOT :
			req+= " AND lot.Categorie="+(COMBO_Categorie-1)					
	FIN		
FIN

SI Combo_Reglement<>Null ALORS
	SELON typerech
		CAS RECH_BTE :
			req+= " AND Bouteille.ReglementActuel ='"+ Combo_Reglement..ValeurAffichée	+"'"
		CAS RECH_LOT :
			req+= " AND lot.Reglement ='"+ Combo_Reglement..ValeurAffichée	+"'"			
	FIN			
FIN

SI COMBO_Fabricant<>Null ALORS
	req+=" AND Fournisseur.IDFournisseur = "+COMBO_Fabricant..ValeurMémorisée
FIN

SI CHP_DateOrigine<>Null ALORS
	req+= " AND lot.DateOrigine="+ CHP_DateOrigine	
FIN

SI CHP_PressionEp<>Null ALORS
	req+= " AND lot.PressionEpreuve="+CHP_PressionEp	
FIN

ValParam,ValParam2,ValParam3,ValParam5 sont des Variants=Null
SELON INTERRUPT_Rech[1]
	CAS 1:
		req+=" AND Bouteille.StopBtl=1"		
	CAS -1:
		req+=" AND Bouteille.StopBtl=0"		
FIN

SELON INTERRUPT_Rech[2] 
	CAS 1:
		req+=" AND Bouteille.Rebut=1"		
	CAS -1:
		req+=" AND Bouteille.Rebut=0"		
FIN

SELON INTERRUPT_Rech[3]
	CAS 1:
		req+=" AND Bouteille.Vendue=1"		
	CAS -1:
		req+=" AND Bouteille.Vendue=0"		
FIN

req+=" ORDER BY Bouteille.NumMesser ASC"

SI HExécuteRequêteSQL(Resultat_Bte,req) ALORS
	HLitPremier(Resultat_Bte)
	TANTQUE PAS HEnDehors(Resultat_Bte)		
		SELON typerech
			//recherche Bouteille
			CAS RECH_BTE :
				TableAjoute(Table_Bouteille ,Resultat_Bte.IDBouteille+TAB+Resultat_Bte.NumMesser+TAB+Resultat_Bte.NumFabrication+TAB+...
				Resultat_Bte.NumLot+TAB+GetTypeEpreuve(False,"",Resultat_Bte.CategorieActuel)+TAB+Resultat_Bte.Type+TAB+Resultat_Bte.Nom+TAB+Resultat_Bte.DateOrigine+TAB+...
				Resultat_Bte.Observations+TAB+Resultat_Bte.Vendue+TAB+0+TAB+Resultat_Bte.Rebut+TAB+Resultat_Bte.StopBtl)						
				//Couleurs		
				SI Resultat_Bte.StopBtl ALORS
					Table_Bouteille[Table_Bouteille..Occurrence]..CouleurFond=Coul_Btl_Stop..CouleurFond
				FIN		
				SI Resultat_Bte.Rebut ALORS
					Table_Bouteille[Table_Bouteille..Occurrence]..CouleurFond=Coul_Btl_Reforme..CouleurFond
				FIN
				SI Resultat_Bte.Vendue ALORS
					Table_Bouteille[Table_Bouteille..Occurrence]..CouleurFond=Coul_Btl_Vente..CouleurFond
				FIN	
		
			CAS RECH_LOT :
				numbtlfin est un entier
				SI TableCherche(TABLE_Lot.NumLot,Resultat_Bte.IDLot)=-1 
					TableAjoute(TABLE_Lot,Resultat_Bte.IDLot+TAB+Resultat_Bte.NumLot+TAB+Resultat_Bte.Type+TAB+GetTypeEpreuve(False,"",Resultat_Bte.Categorie)+...
					TAB+Resultat_Bte.Nom+TAB+Resultat_Bte.NumMesser+TAB+numbtlfin+TAB+Resultat_Bte.Observations+TAB+Resultat_Bte.StopLot)
				FIN
				
					
		FIN		
		
		HLitSuivant(Resultat_Bte)		
	FIN
	HAnnuleDéclaration(Resultat_Bte)


Je construit moimeme ma requete. Ca va deja beaucoup plus vite sauf lorsque je fait une recherche sur certain critére notamment sur Emballage la vraiment ca rame.

Pour la volumétrie :

Emballage : 89
Fournisseur : 25
Bouteille : 74 370
Lot :199

D'autant plus que il s'agit d'une base de test en réalité il faut s'attendre pour le fichier bouteille pres de 400 000 enregistrements a peu pres 1000 pour les lots et je pese mes mots a peu pres 1000 aussi pour fournisseur et emballage ca doit etre a peu pres ça
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2