Bonjour,
Il y a un problème que je ne comprend pas bien. Je suis sous Delphi7 Entreprise.
J'ai une requête SQL :
Cette requête est exécutée instantannément : pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SQL.Text := 'SELECT * FROM "ENREG" WHERE (DateHeure>=:Params0) AND (DateHeure<=:Params1) AND '+ '(ID_Enreg=:Params2)'; Params[0].AsDateTime := StrToDateTime('01/01/1998 03:22:00'); Params[1].AsDateTime := StrToDateTime('26/02/2003 23:59:00'); Params[2].AsInteger := 1; if not DM.IBTransaction.Active then DM.IBTransaction.StartTransaction; Prepare; Open;
Si je passe par des paramètres comme suit :
Cette dernière requête met plus de 10 secondes à s'exécuter....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DateFin := Now; DateDebut := DateFin - 5; SQL.Text := 'SELECT * FROM "ENREG" WHERE (DateHeure>=:Params0) AND (DateHeure<=:Params1) AND '+ '(ID_Enreg=:Params2)'; Params[0].AsDateTime := DateDebut; Params[1].AsDateTime := DateFin; Params[2].AsInteger := 1; if not DM.IBTransaction.Active then DM.IBTransaction.StartTransaction; Prepare; Open;
Je ne comprends pas bien ????
Merci de votre aide car je ne peux pas faire autrement que de passer par des paramètres...comment accélérer cette requête.
A savoir :
ID_Enreg est la clé primaire
DateHeure possède un index pour accélérer les tris.
--
Benoit
Partager