Bonjour,
Ces 2 requêtes sont-elles appelées depuis une procédure stockée, une
instruction sp_executesql ou depuis une commande préparée ?
L'utilisation de variables locales dans un script peut influer sur
l'optimiseur de requête quand il la compile.
--
Jean-Pierre Riehl
http://blog.djeepy1.net
http://www.bewise.fr
"Brigitte" <Brigitte@discussions.microsoft.com> wrote in message
news:C3A08940-FD3D-4BB8-B52A-8617ECACE9D9@microsoft.com...
> Bonjour,
>
> Comment peut-on expliquer que ces deux requêtes ont un temps d'exécution
> totalement différent :
>
> SELECT DISTINCT PROFIL_ID, POSBT.SICOVAM, POSBT.FAIRVALUE, PRIX.THEO,
> POS.FAIRVALUE, POSBT.QUANTITY, POSBT.COD_PORT, POSBT.COD_DEVISE,
> '20070806',
> GETDATE()
> FROM IMP_VAR_DETAIL_POS_BT_CORRIGE POSBT, REF_PORT_SOURCE_HISTORIQUE RPS,
> IMP_SOPH_PRIX PRIX, IMP_VAR_DETAIL_POS_GEN_CORRIGE POS
> WHERE RPS.DAT_PRO_UTIL = '20070806'
> AND POSBT.DAT_PRO = '20070806'
> AND PRIX.DAT_PRO = '20070806'
> AND POS.DAT_PRO = '20070806'
> AND SOURCE = 'SOPHIS'
> AND POSBT.COD_PORT = RPS.COD_PORT
> AND POSBT.SICOVAM *= SIC_INSTR
> AND POSBT.QUANTITY <> 0
> AND POSBT.COD_PORT = POS.COD_PORT
> AND POSBT.SICOVAM = POS.SICOVAM
> AND POSBT.QUANTITY = POS.QUANTITY
>
> DECLARE @DAT_PRO varchar(8)
> SELECT @DAT_PRO = '20070806'
>
> SELECT DISTINCT PROFIL_ID, POSBT.SICOVAM, POSBT.FAIRVALUE, PRIX.THEO,
> POS.FAIRVALUE, POSBT.QUANTITY, POSBT.COD_PORT, POSBT.COD_DEVISE,
> '20070806',
> GETDATE()
> FROM IMP_VAR_DETAIL_POS_BT_CORRIGE POSBT, REF_PORT_SOURCE_HISTORIQUE RPS,
> IMP_SOPH_PRIX PRIX, IMP_VAR_DETAIL_POS_GEN_CORRIGE POS
> WHERE RPS.DAT_PRO_UTIL = @DAT_PRO
> AND POSBT.DAT_PRO = @DAT_PRO
> AND PRIX.DAT_PRO = @DAT_PRO
> AND POS.DAT_PRO = @DAT_PRO
> AND SOURCE = 'SOPHIS'
> AND POSBT.COD_PORT = RPS.COD_PORT
> AND POSBT.SICOVAM *= SIC_INSTR
> AND POSBT.QUANTITY <> 0
> AND POSBT.COD_PORT = POS.COD_PORT
> AND POSBT.SICOVAM = POS.SICOVAM
> AND POSBT.QUANTITY = POS.QUANTITY
>
> merci
>
> Bonne journée
>
> Brigitte