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

Откуда:
Сообщений: 38
Добрый день.

Логгируются ли в SQL Server длинные транзакции?


И длинные блоккировки.




К примеру, висит блоккировка 12 часов.

Это где-нибудь залоггируется? Можно ли как-то узнать о такой блокировки спустя неделю?
10 янв 19, 19:23    [21782092]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 35905
Кем-то, кто хочет об этом знать через неделю, определенно, логируется.
10 янв 19, 19:24    [21782095]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27525
пятый2
Это где-нибудь залоггируется? Можно ли как-то узнать о такой блокировки спустя неделю?
Сервер не разделяет транзакции и блокировки на "длинные" и "короткие".
Транзакции записываются в лог транзакций, блокировки не логируются.
10 янв 19, 21:48    [21782213]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4633
пятый2,

возможно это вам поможет

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/blocked-process-threshold-server-configuration-option
10 янв 19, 22:49    [21782268]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
пятый2
Member

Откуда:
Сообщений: 38
komrad
пятый2,

возможно это вам поможет

https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/blocked-process-threshold-server-configuration-option



похоже то, что надо.

Но постфактум, к сожалению, это уже не поможет.


Спасибо :)
11 янв 19, 10:39    [21782507]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
пятый2
Member

Откуда:
Сообщений: 38
alexeyvg
пятый2
Это где-нибудь залоггируется? Можно ли как-то узнать о такой блокировки спустя неделю?
Сервер не разделяет транзакции и блокировки на "длинные" и "короткие".
Транзакции записываются в лог транзакций, блокировки не логируются.


А возможно ли из лога вытащить транзакции, которые, к примеру, более 1 мин выполнялись?
11 янв 19, 10:39    [21782508]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
invm
Member

Откуда: Москва
Сообщений: 8302
пятый2
А возможно ли из лога вытащить транзакции, которые, к примеру, более 1 мин выполнялись?
См. sys.fn_dblog
11 янв 19, 10:51    [21782524]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
пятый2
Member

Откуда:
Сообщений: 38
invm
пятый2
А возможно ли из лога вытащить транзакции, которые, к примеру, более 1 мин выполнялись?
См. sys.fn_dblog



О, круто.


Ну какие-то dml там видно.

Сразу возникло 2 вопроса:

1) это информация по всему актуальному логу транзакций (т.е. до его быкапирования\орезки)
2) так и не нашел как там вычислить время транзакции.
11 янв 19, 11:00    [21782542]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
Yasha123
Member

Откуда:
Сообщений: 1251
alexeyvg
блокировки не логируются.

чего это не логируются?
а это тогда что?

К сообщению приложен файл. Размер - 33Kb
11 янв 19, 11:03    [21782544]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
invm
Member

Откуда: Москва
Сообщений: 8302
пятый2
так и не нашел как там вычислить время транзакции.
[Transaction ID], [Begin Time], [End Time]
11 янв 19, 11:40    [21782578]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27525
Yasha123
alexeyvg
блокировки не логируются.

чего это не логируются?
а это тогда что?
Хм, интересно. А зачем это? Что бы откатить состояние "до блокировок", то есть снять блокировки? Что бы при восстановлении базы из бакапа накатывать блокировки? Какой то бред :-)
11 янв 19, 21:11    [21783312]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
msLex
Member

Откуда:
Сообщений: 5708
alexeyvg
Yasha123
пропущено...

чего это не логируются?
а это тогда что?
Хм, интересно. А зачем это? Что бы откатить состояние "до блокировок", то есть снять блокировки? Что бы при восстановлении базы из бакапа накатывать блокировки? Какой то бред :-)
Чтобы накатывать блокировки в момент рестора. В 3-ей стадии рекавери (анду) база доступна для изменений, и блокировки, наложененные на второй (реду) стадии, выполняют те-же функции, что наложены в обычной транзакции.
11 янв 19, 21:39    [21783331]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
invm
Member

Откуда: Москва
Сообщений: 8302
alexeyvg
Какой то бред :-)
Если нужно определить к какой строке, странице и т.п. относится операция, то уже не бред.
11 янв 19, 21:39    [21783332]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27525
invm
alexeyvg
Какой то бред :-)
Если нужно определить к какой строке, странице и т.п. относится операция, то уже не бред.
Понятно, эта информация должна быть, но при чём тут блокировки? Выяснять, какие страницы обновляются, косвенно, по наличию блокировки?

msLex
Чтобы накатывать блокировки в момент рестора. В 3-ей стадии рекавери (анду) база доступна для изменений, и блокировки, наложененные на второй (реду) стадии, выполняют те-же функции, что наложены в обычной транзакции.
Да, вот это уже разумно.
12 янв 19, 00:59    [21783412]     Ответить | Цитировать Сообщить модератору
 Re: Логгируются ли в SQL Server длинные транзакции?  [new]
Yasha123
Member

Откуда:
Сообщений: 1251
Lock logging and fast recovery
Randal
SQL Server 2005 introduced a feature called fast recovery in Enterprise Edition. This allows a database to become available for use after the first part of recovery (REDO) completes and before the (usually longer running) second part of recovery (UNDO) completes. But how does SQL Server do this?

The answer is lock logging. A log record describes a single change made to a database. For log records describing changes that can be used as part of UNDO (yes, some changes to the database are one-way only – for instance PFS page changes), from 2005 onwards the log record also includes a description of which locks were being held at the time the change was made. These locks were necessary to protect the change being made when the original transaction was running (before the crash) and so the same locks will be necessary to protect the anti-operation which reverses the change
13 янв 19, 09:39    [21783928]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить