Я хочу задать небольшой вопрос. Как я могу ускорить выполнение следующего сохраненного файла proc.First, нужно сказать, что в следующей таблице 30 000 000 строк:
CREATE TABLE tblT
(
[RowID] [int] IDENTITY(1, 1)
NOT NULL
,[CheckDateID] int NOT NULL
,[SSN] varchar(10)
,[CheckDate] datetime
,[val] money
CONSTRAINT [PK_tblT]
PRIMARY KEY CLUSTERED ( [CheckDateID] ASC, [RowID] ASC )
)
И вот мы здесь, это SP, и мне нужны некоторые разумные советы о том, как я смогу изменить этот процесс. Критическим здесь является время выполнения процесса ...
DECLARE @RowMin [int]
,@RowMax [int]
,@Portion [int]
,@CurMin [int]
,@CurMax [int]
,@strMessage varchar(100)
SET @RowMin = ( SELECT min (RowID) FROM tblT )
SET @RowMax = ( SELECT max (RowID) FROM tblT )
SET @Portion = 350000
SET @CurMin = @RowMin
SET @CurMax = @CurMin + @Portion
WHILE @CurMax <> @CurMin
BEGIN
Update A
set val = val*8,3, --???
from tblT A
where A.RowID Between @CurMin and @CurMax
SET @CurMin = @CurMax
SET @CurMax = case WHEN ( @CurMax + @Portion ) < @RowMax
THEN @CurMax + @Portion
ELSE @RowMax
END
END