Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
Как можно ускорить откат транзакции.
Пользователь вчера запустил транзакцию, в итоге весь лог 50 Гб съесл все место, убили сессию, начался Rollback , соотвественно он теперь идет черепашьими темпами, т.к места нет.
Как можно ускорить это дело ? я так понимаю никак, за исключением подмены файла лога после отсоединения базы.
29 мар 13, 09:56    [14111133]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
смотрю_тут
Как можно ускорить это дело ?
Никак. Только ждать.
смотрю_тут
за исключением подмены файла лога после отсоединения базы
Если так сделаете, БД придется аварийно восстанавливать.
29 мар 13, 10:04    [14111155]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
смотрю_тут
Как можно ускорить откат транзакции.
Выделить больше ресурсов, остановив остальные операции...
29 мар 13, 10:10    [14111181]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
Ozerov
смотрю_тут
Как можно ускорить откат транзакции.
Выделить больше ресурсов, остановив остальные операции...

Если, конечно, есть их нехватка.
29 мар 13, 10:11    [14111184]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
там тип ожидания:
IO_COMPLETION
PAGEIOLATCH_EX
да там пользователь своеобразный , ему сто раз говорили не запускать такие транзакции, уменьшать транзакции, а он все на своем.
БД расположена на консолидированном сервере, кроме его баз , там еще 60 баз.
Мы его специально в отдельный пул запихнули в говернере, и диск специаально для него выделели, чтоб он другим не мешал, так он теперь себе мешает, говорит, что мне теперь до 5 не работать, ну я его успокоил , сказал до 12 должна откатиться )
29 мар 13, 10:17    [14111214]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
смотрю_тут, выдайте ему калькулятор, что без дела не сидел
29 мар 13, 10:18    [14111219]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
посмотрел, перед тем как лог заполнился , транзакция выполнялась 5 часов, соответвенно откатываться будет примерно около 5 часов, так что до 12 не успеет откатиться
29 мар 13, 10:43    [14111380]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
смотрю_тут
посмотрел, перед тем как лог заполнился , транзакция выполнялась 5 часов, соответвенно откатываться будет примерно около 5 часов, так что до 12 не успеет откатиться

Нормальная такая, транзакция... Вам удобно с ней сосуществовать ? :)
29 мар 13, 10:44    [14111385]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
Гость333
Member

Откуда:
Сообщений: 3683
смотрю_тут
посмотрел, перед тем как лог заполнился , транзакция выполнялась 5 часов, соответвенно откатываться будет примерно около 5 часов, так что до 12 не успеет откатиться

Вы на глазок, что ли, оцениваете? :-)
Выполните такой запрос:
select session_id, start_time, status, command, percent_complete
from sys.dm_exec_requests
where session_id = <spid длинной транзакции>

И по времени старта, текущему времени и проценту завершённости вычислите предполагаемое время завершения.
29 мар 13, 10:51    [14111427]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
Гость333
смотрю_тут
посмотрел, перед тем как лог заполнился , транзакция выполнялась 5 часов, соответвенно откатываться будет примерно около 5 часов, так что до 12 не успеет откатиться

Вы на глазок, что ли, оцениваете? :-)
Выполните такой запрос:
select session_id, start_time, status, command, percent_complete
from sys.dm_exec_requests
where session_id = <spid длинной транзакции>

И по времени старта, текущему времени и проценту завершённости вычислите предполагаемое время завершения.

это у меня вообще 0 % показывает,
согласно sys.dm_exec_requests у него по плану был RemoteScan , но там приблизительное кол-во строк 10000, 22 мб, сколько на самом деле неизвестно.
МОжно было немного высвободить места из файловых групп, но на шринк даже места в логе нет.
29 мар 13, 11:21    [14111615]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
Отсоединение базы можно сделать во время отката транзакции? или все равно нужно ждать отката.
Хочу поробовать её отсоединить, и присоединить с другого диска, где есть место,там может откатится
29 мар 13, 11:28    [14111665]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
на тестовой получилось отсоединить при открытой транзакции, но она была не rollback, а как при rollback
29 мар 13, 11:38    [14111731]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
Ускорить можно следующим образом, при возможности отсоединения базы.
Отсоединить базу, скопировать лог на диск с местом, присоединть лог с нового места,
транзакция откатывается, шринконуть лог до нужного размера или размера, чтобы быстро скопировать на новое место(т.к первый раз копировал лог весил 55 Гб копировался 10 минут),
затем все вернуть на место.
Сделал так.
29 мар 13, 12:14    [14112046]     Ответить | Цитировать Сообщить модератору
 Re: Как можно ускорить откат транзакции  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34657
смотрю_тут
Как можно ускорить откат транзакции.
Пользователь вчера запустил транзакцию, в итоге весь лог 50 Гб съесл все место, убили сессию, начался Rollback , соотвественно он теперь идет черепашьими темпами, т.к места нет.
Как можно ускорить это дело ? я так понимаю никак, за исключением подмены файла лога после отсоединения базы.


Единственное, что можно сделать -- увеличить размер кэша для лога, и для самой БД.
29 мар 13, 12:26    [14112112]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить