Bonjour messieurs,

J'ai mis en place en une application de gestion avec Delphi7 et une base de données SQL Server 2005.
Pour l'affichage de données dans mes formulaires j'appelle des procédures stockées depuis ma base sur le serveur.

Mais j'ai un soucis de lenteur quand je lance l'affichage de mes données qui exécute la procédure stockée.
Je constate aussi que pour la 1ère fois l'exécution de la procédure est très lente mais il y a une net amélioration à la prochaine exécution sans fermer l'application.

Je ne comprend pas cela et je souhaite qu'on m'aide à améliorer le temps de réponse.
voici le code de ma procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
 
ALTER PROCEDURE [dbo].[Get_DemandeClt_by_Client] 
@Code_Clt varchar(20) 
AS 
BEGIN 
    SELECT T_DemandeClt.[pk_DemandeClt] 
      ,T_DemandeClt.[Date_Piece] 
      ,T_DemandeClt.[fk_Client] 
      ,T_DemandeClt.[Code_Clt]   
      ,T_DemandeClt.[Interlocuteur] 
      ,T_DemandeClt.[Tel_Interlocut] 
      ,T_DemandeClt.[Fax_Interlocut] 
      ,T_DemandeClt.[Besoins_exprimes]  
      ,T_DemandeClt.[fk_Travail_A_Faire] 
      ,T_DemandeClt.[fk_Prestation] 
      ,T_DemandeClt.[fk_CentreProfit] 
      ,T_DemandeClt.[fk_RespActivite] 
      ,T_DemandeClt.[fk_Transport] 
      ,T_DemandeClt.[Date_Demande] 
      ,T_DemandeClt.[Date_Souhaitee] 
      ,T_DemandeClt.[Date_Limite_Client] 
      ,T_DemandeClt.[Date_Limite_ABB] 
      ,T_DemandeClt.[Date_Limite] 
      ,T_DemandeClt.[Date_Traitement]
      ,T_DemandeClt.[fk_Action] 
      ,T_DemandeClt.[fk_Fournisseur] 
      ,T_DemandeClt.[fk_TypeAchat]  
      ,T_DemandeClt.[Date_Remise]  
      ,T_DemandeClt.[Num_Devis]  
      ,T_DemandeClt.[Montant_HT]  
      ,T_DemandeClt.[Production_Cost] 
      ,T_DemandeClt.[Gross_Margin]  
      --,T_DemandeClt.[Interet]
      ,T_DemandeClt.[fk_Resultat]   
      ,T_DemandeClt.[Reception_BC]   
      ,T_DemandeClt.[Date_BC]   
      ,T_DemandeClt.[Num_BC]   
      ,T_DemandeClt.[Date_Livr_Reelle]   
      ,T_DemandeClt.[Date_Livr_Previ]    
      ,T_DemandeClt.[Date_Livr_MAJ]   
      ,T_DemandeClt.[Num_Facture]   
      ,T_DemandeClt.[Facturation_Situation] 
      ,T_DemandeClt.[fk_Operatrice]  
      ,T_DemandeClt.[Enregistree_Par]   
      ,T_DemandeClt.[Transmis_A]   
      ,T_DemandeClt.[Date_Transmission]    
      ,T_DemandeClt.[Observation]    
      ,T_DemandeClt.[Observation2]    
      ,T_DemandeClt.[Indice]    
      ,T_DemandeClt.[Material_Cost] 
      ,T_DemandeClt.[Date_Saisie]
      ,T_DemandeClt.[Date_Restituee]  
      ,T_Prestation.Description as Prest_Desc 
      ,T_CentreProfit.Description as Centre_Desc 
 
      ,Resp.Prenom as Resp_Centre
 
      ,Com.Prenom as Commercial 
      ,T_Action_A_Faire.Description as Desc_Action 
      ,T_Fournisseur.Fournisseur 
      ,T_TypeAchat.Description as Desc_Achat
      ,T_Transport.Mode_Transport     
 
FROM T_DemandeClt
,T_Prestation
,T_CentreProfit
,T_Employe Resp    
,T_Employe Com
,T_Action_A_Faire
,T_Fournisseur
,T_TypeAchat 
,T_Transport        
where     
 
(T_DemandeClt.fk_Prestation=T_Prestation.pk_Prestation) and     
 (T_CentreProfit.pk_CentreProfit=T_Prestation.fk_CentreProfit) and     
 (T_CentreProfit.fk_Resp=Resp.pk_Employe ) and         
 (T_DemandeClt.fk_Action=T_Action_A_Faire.pk_Action) and        
 (T_DemandeClt.Transmis_A=Com.pk_Employe) and        
 (T_DemandeClt.fk_Fournisseur=T_Fournisseur.pk_Fournisseur) and 
 (T_DemandeClt.fk_TypeAchat=T_TypeAchat.pk_TypeAchat) and    
 (T_DemandeClt.fk_Transport=T_Transport.pk_Transport)  and    
  T_DemandeClt.Code_Clt=@Code_Clt     
 
END
Merci d'avance pour votre aide.