Сделать SQL Server более быстрым при обработке данных - отключить ведение журнала транзакций?

Один из способов избежать sql-srever ведения журнала при работе mssql2005 с большими наборами данных sql-server - использовать SELECT / INTO. Будет sql-server-2005 создана новая таблица, но sql-server-2005 она не будет зарегистрирована.

При sql2005 этом нужно следить за некоторыми mssql вещами:

  • Вычисляемые столбцы становятся обычными столбцами данных.
  • Также необходимо установить столбцы индексации и идентификации.

Если все сделано правильно, это mssql может сэкономить не только mssql пространство, но и время mssql2005 обработки.

Альтернативой является mssql что-то вроде того, что я sql-srever делаю прямо сейчас, например:

UPDATE [MyTable] 
SET    [Message] = REPLACE([Message], N'Content_Type', N'Content-Type')

Работает sql-server нормально, но обновляет всю mssql2005 таблицу, создавая один огромный mssql2005 набор транзакций, вместо sql-server этого вы можете:

DECLARE @IDs TABLE ([id] int)
DECLARE @Batch TABLE ([id] int)

INSERT INTO @IDs ([ID]) SELECT [ID] FROM [MyTable]

WHILE EXISTS (SELECT TOP 1 [ID] FROM @IDs)
BEGIN
  INSERT INTO @Batch ([ID]) SELECT TOP 1000 [Id] FROM @IDS

  UPDATE [MyTable] 
  SET    [Message] = REPLACE([Message], N'Content_Type', N'Content-Type') 
  WHERE  [Id] IN (SELECT [Id] FROM @Batch)

  DELETE @IDs WHERE [Id] IN (SELECT [Id] FROM @Batch)
  DELETE @Batch
END

Это обновляет mssql2005 таблицу по 1000 строк за sql-server-2005 раз, уменьшая размер транзакции.

sql-server

sql-server-2005

2022-07-31T21:55:27+00:00
Вопросы с похожей тематикой, как у вопроса:

Сделать SQL Server более быстрым при обработке данных - отключить ведение журнала транзакций?