J'ai besoin d'un conseil pour régler TSQL afin de l'exécuter plus rapidement, cela prend beaucoup trop de temps bien que cela fonctionne. C'est peut-être parce que je vais chercher une clé d'une autre table avant que je puisse faire l'insertion, des idées n'importe qui?Accélération d'une procédure TSQL d'insertion
DECLARE db_cursorReads CURSOR FOR SELECT
[MeterId]
,[MeterRead]
FROM MdsReadsImports;
declare @PremiseMeterId int;
declare @MeterId nvarchar(24);
declare @MeterRead int;
OPEN db_cursorReads;
FETCH NEXT FROM db_cursorReads INTO
@MeterId
,@MeterRead;
WHILE @@FETCH_STATUS = 0
BEGIN
set @PremiseMeterId = (select top 1 PremiseMeterId from PremiseMeters where MeterId = @MeterId)
insert into PremiseMeterReads (MeterRead,PremiseMeterId)
values (@MeterRead, @MPremiseMeterId)
FETCH NEXT FROM db_cursorReads INTO
@MeterId
,@MeterRead;
END;
CLOSE db_cursorReads;
DEALLOCATE db_cursorReads;
Quelle est la taille des tables? Ont-ils des index? – NeedAnswers
et comme je vois que vous n'avez pas besoin d'utiliser un curseur dans ce cas, évitez-les autant que possible – NeedAnswers
Êtes-vous sûr que le code est correct? Vous n'utilisez pas '@ PremiseMeterID'. –