|
Длительный commit
|
|||
---|---|---|---|
#18+
Помогите разобраться с загадкой. Есть табличка Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
вставляю в нее 400 ранее подготовленных записей Код: sql 1. 2.
Запрос вставки выполняется за 30 мс, commit - 8..9 секунд ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 10:37 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Загадка в том, что в другой базе такой же структуры, лежащей в том же каталоге, подключенной к тому же серверу, все тоже самое выполняется за 1-2 секунды. "Тормозящая" база после рестора и пересчета статистик. Триггеров на таблице или базе нет. Статистика ничего особенного не показывает. В значительно больших по объему и по кол-ву записей в табличке базах коммит много быстрее... Почему такое может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 10:41 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, статистику выполнения и коммита надо более подробную приводить ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 10:44 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Статистики таблицы в "нормальной" и "тормозящей" базе ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 10:52 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Вставка в "обычную" ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 31ms Current memory = 85 032 136 Max memory = 143 269 104 Memory buffers = 5 000 Reads from disk to cache = 0 Writes from cache to disk = 0 Чтений из кэша = 11 618 Коммит: Транзакция подтверждена... (2172 ms) Вставка в "тормозящую" ------ Информация о производительности ------ Время подготовки запроса = 0ms Время выполнения запроса = 79ms Current memory = 84 729 056 Max memory = 85 926 408 Memory buffers = 5 000 Reads from disk to cache = 0 Writes from cache to disk = 0 Чтений из кэша = 10 311 Коммит: Транзакция подтверждена... (8531 ms) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 10:56 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
"Обычная" Database header page information: Flags 0 Checksum 12345 Generation 171 Page size 16384 ODS version 11.2 Oldest transaction 83 Oldest active 84 Oldest snapshot 84 Next transaction 158 Bumped transaction 1 Sequence number 0 Next attachment ID 6 Implementation ID 26 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Jun 1, 2020 13:14:16 Attributes force write "Тормозящая" Database header page information: Flags 0 Checksum 12345 Generation 466 Page size 16384 ODS version 11.2 Oldest transaction 452 Oldest active 453 Oldest snapshot 453 Next transaction 454 Bumped transaction 1 Sequence number 0 Next attachment ID 8 Implementation ID 26 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Jun 2, 2020 16:44:08 Attributes force write ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 10:58 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, Можно узнать по-подробней про FB и систему: - Номер версии FB и архитектура, размер страницы ? - Какая дисковая система (raid, ssd, virtual)? - Включен ли FW ? - Какая скорость коммита при отключенных индексах в PERF_COUNTERS_DATA ? - Насколько фрагментирован диск ? Удачи ! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 11:28 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
То, что бросается в глаза В обычной в 3 раза меньше записей в мастер-таблице PERF_COUNTERS. В обычной заблокирована сборка мусора (хотя статистика показывает отсутствие бекверсий). Статистику коммита тоже нужно увидеть - это может быть важно. В тормозящей гораздо больше дубликатов в индексах по TS. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 11:30 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, и ещё сравни количество активных коннектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 11:37 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Fb 2.5.8.27089 SuperServer Обычный HDD FW включены При отключении (ALTER ... INACTIVE) всех индексов, кроме внешнего ключа: "тормозящая" - коммит 5... 5,5 сек, "обычная" - 1..1,5сек Фрагментации диска нет. Размер кластера 4Кб ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 11:47 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Активных соединений, кроме IBExpert, нет. Базы восстановил на своем рабочем компе. Дисковая подсистема ни при чем - потому что изначально проблему увидели на другом сервере, базу выгрузили и прислали. Развернули на резервном сервере, потом уже ее начал смотреть я. Т.е. в трех разных по аппаратному обеспечению база тормозит (и после рестора), конечно с разным временем выполнения операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 11:54 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, статистика коммита нужна. Врубай трассировку и тащи от туда статистику выполнения запроса и коммита. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 11:58 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
триггеры? зы был же недавно пациент с пасхалками в виде триггеров уровня БД ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 12:02 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Трассу щас соберу. Триггеров на таблице нет ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 12:05 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMFТриггеров на таблице нет Так и тормозит у тебя не таблица. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 12:07 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
2020-06-03T12:23:51.5190 (5612:0000000000F71390) ATTACH_DATABASE D:\DB\2020-06-01-UPP6.TEST_200601.FDB (ATT_11, SYSDBA:NONE, NONE, XNET:TEST_DEVPC) C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe:10144 2020-06-03T12:23:51.5340 (5612:0000000000F71390) START_TRANSACTION D:\DB\2020-06-01-UPP6.TEST_200601.FDB (ATT_11, SYSDBA:NONE, NONE, XNET:TEST_DEVPC) C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe:10144 (TRA_807, CONCURRENCY | WAIT | READ_WRITE) 2020-06-03T12:23:51.5500 (5612:0000000000F71390) START_TRANSACTION D:\DB\2020-06-01-UPP6.TEST_200601.FDB (ATT_11, SYSDBA:NONE, NONE, XNET:TEST_DEVPC) C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe:10144 (TRA_808, READ_COMMITTED | NO_REC_VERSION | WAIT | READ_WRITE) 2020-06-03T12:24:11.0250 (5612:0000000000F71390) EXECUTE_STATEMENT_START D:\DB\2020-06-01-UPP6.TEST_200601.FDB (ATT_11, SYSDBA:NONE, NONE, XNET:TEST_DEVPC) C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe:10144 (TRA_807, CONCURRENCY | WAIT | READ_WRITE) Statement 76: ------------------------------------------------------------------------------- insert into PERF_COUNTERS_DATA(TS, CNT_VALUE, PERF_COUNTERS_ID) select TS, CNT_VALUE, PERF_COUNTERS_ID from T_PERF_COUNTERS_DATA 2020-06-03T12:25:14.3190 (5612:0000000000F71390) COMMIT_TRANSACTION D:\DB\2020-06-01-UPP6.TEST_200601.FDB (ATT_11, SYSDBA:NONE, NONE, XNET:TEST_DEVPC) C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe:10144 (TRA_807, CONCURRENCY | WAIT | READ_WRITE) 4702 ms, 433 write(s), 1 fetch(es), 1 mark(s) 2020-06-03T12:25:14.3190 (5612:0000000000F71390) COMMIT_TRANSACTION D:\DB\2020-06-01-UPP6.TEST_200601.FDB (ATT_11, SYSDBA:NONE, NONE, XNET:TEST_DEVPC) C:\Program Files\Firebird\Firebird_2_5\bin\isql.exe:10144 (TRA_808, READ_COMMITTED | NO_REC_VERSION | WAIT | READ_WRITE) 8 ms, 1 write(s), 1 fetch(es), 1 mark(s) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 12:30 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
select * from rdb$triggers where RDB$TRIGGER_TYPE>114 выдает пусто, т.е. триггеров уровня базы данных нет ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 12:41 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF в другой базе такой же структуры, все тоже самое выполняется за 1-2 секунды. Если у вас подозрения на саму "тормозящую" базу. Тогда почему бы не создать пустую и залить в неё метаданные и данные. Мы на работе используем IBEScript и эта утилита мгновенно заливает большие объемы данных (с блобами в том числе). - Какое значение DefaultDbCachePages ? - Какая версия ODS ? Что если увеличить Buffers и установить Page Size = 8192. Удачи ! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 13:31 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
AltHasp, Мне ведь нужно разобраться, почему у одного клиента получаются такие "тормозящие" базы. Т.е. это не одна такая. Ну перекачаю я данные (хотя сомневаюсь насчет "быстро" для баз в несколько гигабайт размером) и она скорее всего не будет тормозить - это не поможет мне в поисках ответа. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 13:42 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
AltHasp, ODS version 11.2, DefaultDbCachePages = 5000 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 13:45 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Если не ошибаюсь, то при коммите очищаются временные таблицы с ON DELETE ROWS. Не в этом ли проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 13:59 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF Трассу щас соберу. Тем более, что трасса тут 22144805 настроена не правильно - там нет полной статистики, нет EXEC_STMT_FINISH. И - показывай полную статистику, включая потабличную. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 14:48 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
hvlad, не знаю, как в IBE включить статистику Commit Статистика выполнения запроса в картинке, потому что "Copy Analysis to Clipboard" разъезжаются колонки таблички ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 15:22 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
на "нормальной" базе Query ------------------------------------------------ insert into PERF_COUNTERS_DATA(TS, CNT_VALUE, PERF_COUNTERS_ID) select TS, CNT_VALUE, PERF_COUNTERS_ID from T_PERF_COUNTERS_DATA; Plan ------------------------------------------------ Query Time ------------------------------------------------ Prepare : 0,00 ms Execute : 31,00 ms Avg fetch time: 0,00 ms Memory ------------------------------------------------ Current: 84 010 336 Max : 84 130 040 Buffers: 5 000 Operations ------------------------------------------------ Read : 132 Writes : 0 Fetches: 6 536 Marks : 870 Enchanced Info: +-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+ | Table Name | Records | Indexed | Non-Indexed | Updates | Deletes | Inserts | Backouts | Purges | Expunges | | | Total | reads | reads | | | | | | | +-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+ |PERF_COUNTERS_DATA | 0 | 0 | 0 | 0 | 0 | 429 | 0 | 0 | 0 | |T_PERF_COUNTERS_DATA | 0 | 0 | 429 | 0 | 0 | 0 | 0 | 0 | 0 | +-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+ Транзакция подтверждена... (953 ms) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 15:32 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Используй тег FIXED: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 15:54 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF не знаю, как в IBE включить статистику Commit ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:00 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
hvlad, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:13 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, а на нормальной БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:21 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Симонов Денис, на "нормальной" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:28 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, коррелляцию между Execute и Writes видишь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:36 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
hvlad, вижу, но ведь кол-во вставляемых записей одинаково... Почему writes разное? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:41 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF, а записи в обеих БД одни и те же вставляются ? У них либо сильно разное распределение по ключам индексов. Либо в одной БД есть свободные места на случайных страницах с данными, а в другой - нет и там новые записи ложатся плотнее, занимая меньше страниц В одной БД они меняют в 3 раза меньше страниц, чем в другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 16:47 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
hvlad, Записи разные, одинаково только кол-во, поскольку завязаны на содержимое таблицы-мастера. Обе базы после рестора, т.е. свободных случайных страниц нет. Выходит, разница в 4 раза обусловлена индексом внешнего ключа (остальные три дезактивированы, статистика COMMIT приведена для отключенных индексов). Как-то неожиданно ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 17:08 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
MMF Выходит, разница в 4 раза обусловлена индексом внешнего ключа Можно сравнить статистику этого индекса до и после заливки записей. Если в быстром варианте будет больше новых страниц - это оно и есть. По твоим картинкам в 22144740 - заполнение страниц индекса FK_PERF_COUNTERS_DATA_COUNTER в "быстрой" БД ближе к 80%, а в медленной - ближе к 50% MMF Как-то неожиданно Чё-то долго, даже для random IO, даже для HDD (хотя...) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 17:18 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Благодарю за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 18:01 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Возможно у автора какой-то новый способ спровоцировать длительный коммит. Какая-та скупая информация о том, как он это делает. Есть более простой и понятный способ получить тоже самое. По аналогии вот с этим автор05.06.2020 7:18:48 - DBMS : WI-V3.0.6.33294 Firebird 3.0 05.06.2020 7:18:48 - Client : Firebird 3.0.6.33294 05.06.2020 7:18:48 - START 05.06.2020 7:19:02 - 10000 05.06.2020 7:19:20 - 20000 05.06.2020 7:19:38 - 30000 05.06.2020 7:19:56 - 40000 05.06.2020 7:20:16 - 50000 05.06.2020 7:20:16 - STOP 05.06.2020 7:20:16 - COMMIT [relax and wait] 05.06.2020 7:30:54 - FINISH 10 минут. Я почему-то был уверен, что это в FB3 уже исправили. Ан нет. Код теста Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
То же самое, но через другого клиента Я не стал разгружать машину для чистоты эксперимента. автор05.06.2020 7:43:18 - DBMS : WI-V3.0.6.33294 Firebird 3.0 05.06.2020 7:43:18 - Client : LCPI.IBProvider.RemoteFB 5.18.0.35340 05.06.2020 7:43:18 - START 05.06.2020 7:43:35 - 10000 05.06.2020 7:43:54 - 20000 05.06.2020 7:44:12 - 30000 05.06.2020 7:44:30 - 40000 05.06.2020 7:44:49 - 50000 05.06.2020 7:44:49 - STOP 05.06.2020 7:44:49 - COMMIT [relax and wait] 05.06.2020 7:44:49 - FINISH ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 07:49 |
|
Длительный commit
|
|||
---|---|---|---|
#18+
Коваленко Дмитрий, Никто будучи в своём уме, не запускает 100500 селективных запросов на выполнение в одной тр-ции и ничего с ними потом не делает. Реакцию на этот бред, конечно, можно исправить, но кому это реально нужно ? Да и чем тогда ты будешь так гордиться ? :) PS тикет в трекере есть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 10:18 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560335]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
123ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 251ms |
0 / 0 |