Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Помогите разобраться с загадкой.
Есть табличка
CREATE TABLE PERF_COUNTERS_DATA (
    TS                TIMESTAMP NOT NULL,
    CNT_VALUE         NUMERIC(18,2),
    PERF_COUNTERS_ID  INTEGER NOT NULL
);
ALTER TABLE PERF_COUNTERS_DATA ADD CONSTRAINT FK_PERF_COUNTERS_DATA_COUNTER FOREIGN KEY (PERF_COUNTERS_ID) REFERENCES PERF_COUNTERS (ID) ON DELETE CASCADE;
CREATE INDEX PERF_COUNTERS_DATA_IDX_CACHE ON PERF_COUNTERS_DATA (PERF_COUNTERS_ID, TS);
CREATE DESCENDING INDEX PERF_COUNTERS_DATA_IDX_TS ON PERF_COUNTERS_DATA (TS);
CREATE INDEX PERF_COUNTERS_DATA_IDX_TS_ACC ON PERF_COUNTERS_DATA (TS);


вставляю в нее 400 ранее подготовленных записей
insert into PERF_COUNTERS_DATA(TS, CNT_VALUE, PERF_COUNTERS_ID)
select TS, CNT_VALUE, PERF_COUNTERS_ID from T_PERF_COUNTERS_DATA;

Запрос вставки выполняется за 30 мс, commit - 8..9 секунд
3 июн 20, 10:37    [22144733]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Загадка в том, что в другой базе такой же структуры, лежащей в том же каталоге, подключенной к тому же серверу, все тоже самое выполняется за 1-2 секунды. "Тормозящая" база после рестора и пересчета статистик. Триггеров на таблице или базе нет. Статистика ничего особенного не показывает.
В значительно больших по объему и по кол-ву записей в табличке базах коммит много быстрее... Почему такое может быть?
3 июн 20, 10:41    [22144735]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
MMF,

статистику выполнения и коммита надо более подробную приводить
3 июн 20, 10:44    [22144737]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Статистики таблицы в "нормальной" и "тормозящей" базе

К сообщению приложен файл. Размер - 79Kb
3 июн 20, 10:52    [22144740]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Вставка в "обычную"
------ Информация о производительности ------
Время подготовки запроса = 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)
3 июн 20, 10:56    [22144741]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
"Обычная"
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
3 июн 20, 10:58    [22144742]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
AltHasp
Member

Откуда:
Сообщений: 147
MMF,
Можно узнать по-подробней про FB и систему:

- Номер версии FB и архитектура, размер страницы ?
- Какая дисковая система (raid, ssd, virtual)?
- Включен ли FW ?
- Какая скорость коммита при отключенных индексах в PERF_COUNTERS_DATA ?
- Насколько фрагментирован диск ?

Удачи !
3 июн 20, 11:28    [22144759]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
hvlad
Member

Откуда:
Сообщений: 10954
То, что бросается в глаза

В обычной в 3 раза меньше записей в мастер-таблице PERF_COUNTERS.
В обычной заблокирована сборка мусора (хотя статистика показывает отсутствие бекверсий).
Статистику коммита тоже нужно увидеть - это может быть важно.
В тормозящей гораздо больше дубликатов в индексах по TS.
3 июн 20, 11:30    [22144762]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
MMF,

и ещё сравни количество активных коннектов.
3 июн 20, 11:37    [22144766]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Fb 2.5.8.27089 SuperServer
Обычный HDD
FW включены
При отключении (ALTER ... INACTIVE) всех индексов, кроме внешнего ключа: "тормозящая" - коммит 5... 5,5 сек, "обычная" - 1..1,5сек
Фрагментации диска нет. Размер кластера 4Кб
3 июн 20, 11:47    [22144769]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Активных соединений, кроме IBExpert, нет. Базы восстановил на своем рабочем компе.
Дисковая подсистема ни при чем - потому что изначально проблему увидели на другом сервере, базу выгрузили и прислали. Развернули на резервном сервере, потом уже ее начал смотреть я. Т.е. в трех разных по аппаратному обеспечению база тормозит (и после рестора), конечно с разным временем выполнения операции.
3 июн 20, 11:54    [22144773]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10574
MMF,

статистика коммита нужна.
Врубай трассировку и тащи от туда статистику выполнения запроса и коммита.
3 июн 20, 11:58    [22144776]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1891
триггеры?

зы
был же недавно пациент с пасхалками в виде триггеров уровня БД
3 июн 20, 12:02    [22144780]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
Трассу щас соберу.
Триггеров на таблице нет
3 июн 20, 12:05    [22144785]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

MMF
Триггеров на таблице нет

Так и тормозит у тебя не таблица.

Posted via ActualForum NNTP Server 1.5

3 июн 20, 12:07    [22144788]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
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)
3 июн 20, 12:30    [22144805]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
select * from rdb$triggers where RDB$TRIGGER_TYPE>114
выдает пусто, т.е. триггеров уровня базы данных нет
3 июн 20, 12:41    [22144815]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
AltHasp
Member

Откуда:
Сообщений: 147
MMF
в другой базе такой же структуры,
все тоже самое выполняется за 1-2 секунды.


Если у вас подозрения на саму "тормозящую" базу.
Тогда почему бы не создать пустую и залить в неё метаданные и данные.
Мы на работе используем IBEScript и эта утилита мгновенно заливает большие
объемы данных (с блобами в том числе).

- Какое значение DefaultDbCachePages ?
- Какая версия ODS ?

Что если увеличить Buffers и установить Page Size = 8192.


Удачи !
3 июн 20, 13:31    [22144856]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
AltHasp,
Мне ведь нужно разобраться, почему у одного клиента получаются такие "тормозящие" базы. Т.е. это не одна такая. Ну перекачаю я данные (хотя сомневаюсь насчет "быстро" для баз в несколько гигабайт размером) и она скорее всего не будет тормозить - это не поможет мне в поисках ответа.
3 июн 20, 13:42    [22144865]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
AltHasp,

ODS version 11.2,
DefaultDbCachePages = 5000
3 июн 20, 13:45    [22144868]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11911
Если не ошибаюсь, то при коммите очищаются временные таблицы с ON DELETE ROWS. Не в этом ли проблема?
3 июн 20, 13:59    [22144884]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
hvlad
Member

Откуда:
Сообщений: 10954
MMF
Трассу щас соберу.
Зачем ? IBE прекрасно покажет статистику выполнения оператора COMMIT.
Тем более, что трасса тут 22144805 настроена не правильно - там нет полной статистики, нет EXEC_STMT_FINISH.
И - показывай полную статистику, включая потабличную.
3 июн 20, 14:48    [22144934]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
hvlad,
не знаю, как в IBE включить статистику Commit
Статистика выполнения запроса в картинке, потому что "Copy Analysis to Clipboard" разъезжаются колонки таблички

К сообщению приложен файл. Размер - 30Kb
3 июн 20, 15:22    [22144988]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
MMF
Member

Откуда:
Сообщений: 96
на "нормальной" базе
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)

Сообщение было отредактировано: 3 июн 20, 15:30
3 июн 20, 15:32    [22145003]     Ответить | Цитировать Сообщить модератору
 Re: Длительный commit  [new]
hvlad
Member

Откуда:
Сообщений: 10954
Используй тег FIXED:

+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
| 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 |
+-------------------------------+-----------+-----------+-------------+---------+---------+---------+----------+----------+----------+
3 июн 20, 15:54    [22145029]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить