У меня есть таблица «OFICIAL3» с 500k строк. и 30 столбцов. и таблица INSIS с 150 тыс. строк и 20 столбцов. OFICIAL3.NUMERO_TITULO имеет индекс. INSIS.NumeroDocumento также имеет индекс. предложение об обновлении занимает много времени. этот процесс займет 9 часов в моей машине моя машина является Core 2 Duo 2.GHZ и 2 Гб RAMпроблема с производительностью SQL Server 2005 update предложение
ALTER PROCEDURE [dbo].[CompletarDatos] AS
declare @cantidad int;
declare @CONTADOR int;
declare @NRO_TITULO VARCHAR(600);
declare @POYECTO VARCHAR(200);
DECLARE @I_PROYECTO VARCHAR(500);
DECLARE @I_AREA_INT VARCHAR(500);
SET NOCOUNT ON
BEGIN
SET @cantidad =(select count(*) from OFICIAL3)
SET @CONTADOR=1
declare CURSORITO cursor for
select NUMERO_TITULO from OFICIAL3
open CURSORITO
fetch next from CURSORITO
into @NRO_TITULO
while @@fetch_status = 0
begin
SET @[email protected]+1
PRINT 'ROW='+CONVERT(NVARCHAR(30),@CONTADOR)+' NRO TITULO='[email protected]_TITULO
SET @I_PROYECTO = (SELECT PROYECTO FROM INSIS WHERE [email protected]_TITULO)
SET @I_AREA_INT = (SELECT I_AREA_INTERVENCION FROM INSIS WHERE [email protected]_TITULO)
UPDATE OFICIAL3 SET [email protected]_PROYECTO , [email protected]_AREA_INT WHERE [email protected]_TITULO
fetch next from CURSORITO into @NRO_TITULO
end
-- cerramos el cursor
close CURSORITO
deallocate CURSORITO
END
Вам действительно нужно найти подход, который не включает курсор. Вероятно, это проблема. – DOK