Каков лучший способ устанавливать top для DELETE используя TRANSACTION?

У меня есть тысячи реестров в таблице, которые, они индивидуально взвешивают около 15 Мб, и я удаляю их в блоках 10, всем этом посредством сделки, но читаю немного более основательно я встретился с TRANSACTION LOG, из которого выходят я сомнения:

  • На основании размера, что я вынес TRANSACTION LOG, я могу надеяться для defirmir мой top, чтобы делать DELETE?
  • Какова лучшая практика для defirmir top, который нужно удалять, и на основании чего?

Код:

BEGIN TRAN
    WHILE @@ROWCOUNT > 0
       DELETE TOP 10
          FROM table1
COMMIT TRAN

SGBD: SQL Server 2016

0
задан 11.03.2019, 13:37
1 ответ

transaction log - инструмент, который позволяет SQL Server знать, что то, что делается в каждом моменте, и, из-за того же самого, Ваши спинки помогают реставрировать базу данных в любой момент во времени. Управление log отличное segГєn способ recuperaciГіn базы данных. В полном способе, log sГіlo повторно используется despuГ©s каждой спинки log. В простом способе, он помечается как переиспользуемо, закончившись каждый transacciГіn.

, Поскольку о нем упоминают в другом ответе, чтобы удалять все данные о таблице, - возможный использовать ее instrucciГіn TRUNCATE TABLE. Эта instrucciГіn предотвращает, что вырос слишком много log благодаря тому, что sГіlo он регистрирует их pГЎginas освобожденные и не каждая линия informaciГіn, как он делает это DELETE. Однако, другая restricciГіn этой instrucciГіn состоит в том, что таблица не может быть снабженной ссылками ключами forГЎneas.

, В случае когда он хочет делать один DELETE из-за блоков, важно, чтобы каждый instrucciГіn был одной transacciГіn независимо. В примере, который ты помещаешь, sГіlo habrГЎ одна transacciГіn для всех блоков, что удаляет чувство делания этого этой формой.

, Чтобы определять tamaГ±o каждого блока, ты нуждаешься в том, чтобы узнать все линии смоги выносить log без необходимости расти. Нужно принимать во внимание, что могут быть другие инструкции ejecutГЎndose в то же время, и что tambiГ©n utilizarГЎn log. Избегают того, чтобы log вырос благодаря тому, что это - то, что mГЎs тратит ресурсы в течение больших операций. TambiГ©n возможный поддерживать log tamaГ±o достаточно большим, чтобы выносить все операции рутины и избегать того, чтобы он вырос.

Аарон Бертран сделал какие-то измерения, где он показывает, как он затрагивает tamaГ±o каждого блока во временах и tamaГ±o log. Ты они можешь находить в этот artГ-зад .

0
ответ дан 19.11.2019, 22:17