Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Авторррррр
Guest |
Добрый день. Коллеги подскажите, а как можно узнать размер транзакций проходящий через лог БД. То есть исходная задача такая: Есть база в моделе восстановления Simple, и нужно узнать какие транзакции прошли, а лучше с размером этих транзакций. В гугл не нашел инструментов для этого, кроме платных http://solutioncenter.apexsql.com/read-a-sql-server-transaction-log/ Да и то , похоже тулза не покажет размер. |
6 окт 14, 15:26 [16666565] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
"размер проходящих транзакций" - это сколько байтов было записано в журнал что ли ? |
6 окт 14, 15:31 [16666633] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Суммарный размер всех транзакций можно получить через sys.dm_io_virtual_file_stats. Если нужно детальнее, то стандартными средствами никак. |
6 окт 14, 15:32 [16666665] Ответить | Цитировать Сообщить модератору |
Fdnjhhhhhh
Guest |
Ну да... |
6 окт 14, 15:32 [16666672] Ответить | Цитировать Сообщить модератору |
Авторррррр
Guest |
Гавриленко Сергей Алексеевич, Сергей, есть идеи, как не стандартными можно было бы сделать такое? |
6 окт 14, 15:35 [16666708] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Не стандартными средствами делается просто - ищется приложение, которое дает нужный вам функционал, и покупается. Сообщение было отредактировано: 6 окт 14, 15:36 |
||
6 окт 14, 15:36 [16666720] Ответить | Цитировать Сообщить модератору |
Shakill Member Откуда: мск Сообщений: 1882 |
Авторррррр, может, вам вот это подойдет SELECT * FROM fn_dblog(NULL, NULL) |
6 окт 14, 15:41 [16666754] Ответить | Цитировать Сообщить модератору |
Авторррррр
Guest |
Гавриленко Сергей Алексеевич, Такое в смысле, описанный выше функционал, показывающий размер транзакций. Я так понял вы такого функционала не встречали в продуктах сторонних разработчиков, ок. |
6 окт 14, 15:41 [16666756] Ответить | Цитировать Сообщить модератору |
churupaha Member Откуда: Краснодар Сообщений: 1015 |
Легко with t0 as ( select max([Transaction Name]) over (partition by [Transaction ID]) as txn, * from fn_dblog(null, null) ) select txn, sum([Log Record Length]) / 1024.0 as size_kb, sum([Log Reserve]) / 1024.0 as reserve_kb from t0 group by txn |
||
6 окт 14, 15:41 [16666761] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Если для вас это "сколько байтов было записано в журнал", то чего вам не хватает в sys.dm_io_virtual_file_stats ? |
||
6 окт 14, 15:42 [16666767] Ответить | Цитировать Сообщить модератору |
churupaha Member Откуда: Краснодар Сообщений: 1015 |
+ fn_dblog читает только активную часть лога. учитывая recovery model = simple, прочтет начиная с lsn = min(checkpoint_lsn, old_tran_lsn, ...) чтобы прочитать все что в логи физически есть. есть trace flag, номер по памяти не скажу :( |
6 окт 14, 15:46 [16666786] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
select * from sys.dm_os_performance_counters |
6 окт 14, 15:48 [16666798] Ответить | Цитировать Сообщить модератору |
churupaha Member Откуда: Краснодар Сообщений: 1015 |
|
|
6 окт 14, 15:50 [16666814] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
MSSQL$KILIMADJARO:Databases Commit table entries MSSQL$KILIMADJARO:Databases Data File(s) Size (KB) MSSQL$KILIMADJARO:Databases Log File(s) Size (KB) MSSQL$KILIMADJARO:Databases Log File(s) Used Size (KB) MSSQL$KILIMADJARO:Databases Percent Log Used MSSQL$KILIMADJARO:Databases Active Transactions |
6 окт 14, 15:51 [16666817] Ответить | Цитировать Сообщить модератору |
churupaha Member Откуда: Краснодар Сообщений: 1015 |
+ еще хорошему надо учитывать parent transaction id, а то page split'ы например посчитаются как отдельные транзакции, внутренне оно так и есть, а вот породила их какая-то кокретная транзакция... и по хорошему это барахло надо включать в ее размер... |
6 окт 14, 15:53 [16666839] Ответить | Цитировать Сообщить модератору |
Авторррррр
Guest |
churupaha, Запустил этот код на сервере, после 17 часов безрезультативного исполнения остановил работу скрипта... Будем искать с перламутровыми) |
7 окт 14, 11:11 [16669940] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |