Bonjour,
Je suis sous SQL Server 2000, j'ai besoin dans mon developpement d'executer l'instruction suivante:
Insert Into ContractPositionDetails(ContractPositionId, SecurityId, Quantity, Price, PriceCurrencyId, PriceEUR, PriceDate, Evaluation,
EvaluationEUR, AveragePriceEUR)
Select ContractPositions.ContractPositionId, Securities.SecurityId, BufferSwlInContractPositionDetails.Quantity, BufferSwlInContractPositionDetails.Price,
'EUR', BufferSwlInContractPositionDetails.Price, BufferSwlInContractPositionDetails.PriceDate,
BufferSwlInContractPositionDetails.Evaluation, BufferSwlInContractPositionDetails.Evaluation,
BufferSwlInContractPositionDetails.AveragePrice
From ((BufferSwlInContractPositionDetails Inner Join Contracts On Contracts.ContractCompanyReference = BufferSwlInContractPositionDetails.ContractCompanyReference)
Inner Join ContractPositions On ContractPositions.ContractId = Contracts.ContractId And ContractPositions.SituationDate = BufferSwlInContractPositionDetails.SituationDate)
Inner Join Securities On Securities.IsinCode = BufferSwlInContractPositionDetails.SecurityCode
Where ContractPositions.lotId = @p_intSittingId
La plupart du temps, cela s'execute sans probleme mais parfois cela me crée des locks en Mode X ou IX. J'en ai un de type KEY, plein d'autre de type PAG et un de type TAB.
J'ai crée des index sur les champs de la partie WHERE.
Connaissez vous des pistes pour resoudre ce probleme car j'ai l'impression que c'est la requete elle- meme qui se bloque!
Merci d'avance,
Knightrider
Partager