Salut j'ai la requete suivante qui me prend 40 sec à s'exécuter.
Code :
SELECT A.RefDate, 'Swap' AS Product, sum(A.BPV) AS BasePV, sum(abs(A.BPV)) AS AbsoluteBasePV FROM
(
SELECT p.ReferenceDate AS RefDate,
INS.MaturityDateAdj AS Mat,
LG.CurrencyID AS CCY,
ROUND(LGD.InterestFixedRate,8) AS IFR,
LG.InterestIndexID AS IID,
sum(VTR.BasePV) AS BPV
FROM panorama..InstrumentLeg LG,
panorama..InstrumentLeg LGD,
panorama..Instrument INS,
panorama..ValuationTabResults VTR,
panorama..PortfolioResults p,
panorama..PartitionMapData PMD
WHERE p.ResultsID = VTR.ResultsID
AND INS.InstrumentID = LG.InstrumentID
AND INS.InstrumentID = LGD.InstrumentID
AND LG.LegType = 'Flt'
AND LGD.LegType = 'Fxd'
AND INS.InstrumentID = PMD.Key4
AND PMD.Key0 = 'Swap'
AND INS.VersionNumber = 0
AND LG.VersionNumber = 0
AND LGD.VersionNumber = 0
AND VTR.UserPartitionID=PMD.PartitionCode
AND p.PortfolioID IN (SELECT PortfolioID FROM RPTRISK_DeskPortfolioMapping WHERE DeskID='oblig')
GROUP BY p.ReferenceDate,
INS.MaturityDateAdj,
LG.CurrencyID,
ROUND(LGD.InterestFixedRate,8),
LG.InterestIndexID
) A
GROUP BY A.RefDate
lorsque le remplace cette ligne
Code :
Code :
p.PortfolioID IN (SELECT PortfolioID FROM RPTRISK_DeskPortfolioMapping WHERE DeskID='oblig')
par simplement
Code :
p.PortfolioID IN ('ABOBLIG','PRIMOBLI')
--Ces valeurs étant le resultat envoyé par (select PortfolioID from RPTRISK_DeskPortfolioMapping where DeskID='oblig')
La requete s'exécute en moins 1s
qu'est-ce qui cloche? Ma table RPTRISK_DeskPortfolioMapping contient une 40aine d'enregistrements en tout. J'ai tenté divers variantes en incluant la table RPTRISK_DeskPortfolioMapping dans une jointure mais rien n'y fait....
Merci de votre aide
Bossun
P.S1 C'est mieux de prendre son pied que de se prendre la tête!
/F