Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Замедление вставки в GTT для fb4 по сравнению с fb3 / 25 сообщений из 27, страница 1 из 2
03.06.2021, 01:18
    #40075289
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Тестирую на своих базах узкие места

metadata
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE GENERATOR GEN_GTT;

CREATE GLOBAL TEMPORARY TABLE GTT (
    ID          INTEGER NOT NULL,
    I1          INTEGER,
    ID_SESSION  INTEGER
) ON COMMIT PRESERVE ROWS;

ALTER TABLE GTT ADD CONSTRAINT PK_GTT PRIMARY KEY (ID);

CREATE OR ALTER TRIGGER GTT_BI FOR GTT
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gen_gtt, 1);
end;




Код: sql
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.
create or alter procedure TEST_GTT (
    N integer)
returns (
    C integer)
as
declare variable id_session integer;
declare variable t0 timestamp;
declare variable t1 timestamp;
begin
  id_session = gen_id(gen_gtt, n);

  t0 = cast('now' as timestamp);

  while (n > 0) do
  begin
    insert into gtt (id, id_session)
    values (:id_session - :n, :id_session);
    n = n - 1;
  end

  t1 = cast('now' as timestamp);

  c = datediff(millisecond, t0, t1);

  suspend;
end;



Тестирую так:
Код: sql
1.
select * from test_gtt(10000000)


На fb4.0 наблюдаю замедление примерно на 20-25% по сравнению с fb3.0
...
Рейтинг: 0 / 0
03.06.2021, 08:40
    #40075325
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
замени timestamp на timestamp without time zone и сравни еще раз
...
Рейтинг: 0 / 0
03.06.2021, 09:16
    #40075329
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
пардон, мне привиделось, что оно в цикле :-) Тогда ХЗ, вроде не должно быть таких отличий. Разберемся, как будет время.
...
Рейтинг: 0 / 0
03.06.2021, 09:18
    #40075330
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
dimitr,

дык timestamp он же и так по умолчанию without time zone
...
Рейтинг: 0 / 0
03.06.2021, 09:21
    #40075332
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Симонов Денис,

еще раз пардон, результат утра без кофе :-)
...
Рейтинг: 0 / 0
03.06.2021, 10:31
    #40075348
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк Евгений
На fb4.0 наблюдаю замедление примерно на 20-25% по сравнению с fb3.0
У меня оба дают по 51-53 сек.
Кеш 2048, страница 8КБ.
...
Рейтинг: 0 / 0
03.06.2021, 11:40
    #40075371
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
03.06.2021 01:18, Шавлюк Евгений пишет:
> На fb4.0 наблюдаю замедление примерно на 20-25% по сравнению с fb3.0

как настроены TEMP-ы ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.06.2021, 12:44
    #40075386
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Мимопроходящий,

Код: plaintext
1.
2.
3.
4.
5.
6.
DefaultDbCachePages = 50000
TempBlockSize = 2M
TempCacheLimit = 364M
LockMemSize = 9M
LockHashSlots = 30011
DataTypeCompatibility = 3.0

Настройки fb3 и 4 идентичные, стоят на одном компьютере
...
Рейтинг: 0 / 0
03.06.2021, 12:45
    #40075388
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
hvlad
Кеш 2048, страница 8КБ.

У меня страница стоит 4Кб, попробую изменить
...
Рейтинг: 0 / 0
03.06.2021, 12:50
    #40075389
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк Евгений,

4 Кб это очень мало. Сейчас БД по дефолту со страницей 8 Кб создаётся.
...
Рейтинг: 0 / 0
03.06.2021, 13:20
    #40075394
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк Евгений,

а у меня результаты такие:

AMD Ryzen 3700x, 32gb RAM
SSD 860 EVO 1tb или HDD Seagate - без разницы, видимо gtt винда оставляет в памяти, реального обмена с дисками нет (файл fb_table.... нулевого размера, в свойствах виден реальный размер).
Конфиг ФБ 3 и 4 дефолтный на 100%.
fw=on/off не влияет.
страница БД 8к (employee)

FB 3 - 61сек, размер файла 578мб, reads 2, writes 76694, fetches 59 357 969
FB 4 - 63сек, размер файла 633мб, reads 2, writes 83877, fetches 59 421 502

казалось бы - ФБ 4 чуть побыстрее, учитывая большее количество writes (и больший размер файла), однако в таблице всего 3 integer, и неясно, за счет чего размер гтт увеличился в 4.0 почти на 10%. Так что, "убыстрение" компенсировалось увеличением размера.

Что интересно. В обоих случаях виден "обмен с диском" на уровне 20мб сек. Но если я делаю кэш в 100к страниц, результаты теста остаются теми же, а вот обмен с диском падает до 10мб сек.
...
Рейтинг: 0 / 0
03.06.2021, 13:22
    #40075395
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк ЕвгенийНастройки fb3 и 4 идентичные

Вот только у четвёрки как раз что-то правилось с выбором умолчательного каталога для
файлов временных таблиц ЕМНИП.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.06.2021, 13:28
    #40075402
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Dimitry Sibiryakov,

там только дали возможность его переопределить в конфиге
...
Рейтинг: 0 / 0
03.06.2021, 13:31
    #40075404
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
03.06.2021 13:28, Симонов Денис пишет:
> там только дали возможность его переопределить в конфиге

вот и надо бы посмотреть, куда пишет 4-ка и 3-ка, именно на этом хосте.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.06.2021, 13:39
    #40075407
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Dimitry SibiryakovВот только у четвёрки как раз что-то правилось с выбором умолчательного каталога для
файлов временных таблиц ЕМНИП.
ну что ты. я специально же смотрел в монитор ресурсов, КУДА пишется этот fb_table и с какой скоростью.
В обоих случаях - в умолчательный системный TEMP. Потом назначил FIREBIRD_TMP на HDD, убедился что "пишет" туда.
...
Рейтинг: 0 / 0
03.06.2021, 13:44
    #40075411
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Мимопроходящийвот и надо бы посмотреть, куда пишет 4-ка и 3-ка, именно на этом хосте.
исходя из моего теста - пофиг куда пишет, если эти 600мб помещаются в память (файловый кэш ОС).
А как сделать чтобы не помещалось - я не знаю (.

Вообще 578мб делить на 61 (или 633 на 63) это где-то 10мб в секунду, и учитывая, что у меня запись идет в память, как-то медленновато, вообще, что для 3.0, что для 4.0.
И почему тогда монитор ресурсов сообщает о записи в файл в 20мб сек...
...
Рейтинг: 0 / 0
03.06.2021, 15:49
    #40075444
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк Евгений
hvlad
Кеш 2048, страница 8КБ.

У меня страница стоит 4Кб, попробую изменить
Это не важно, главное чтобы было одинаково.

Сколько раз ты замерял результаты ?
Насколько сильно забит диск с TEMP ?
Сравнивал ли Physical disk IO ?
Зависит ли скорость от порядка выполнения (fb3 потом fb4, и наоборот) ?
...
Рейтинг: 0 / 0
03.06.2021, 15:51
    #40075445
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
kdv
Вообще 578мб делить на 61 (или 633 на 63) это где-то 10мб в секунду, и учитывая, что у меня запись идет в память, как-то медленновато, вообще, что для 3.0, что для 4.0.
И почему тогда монитор ресурсов сообщает о записи в файл в 20мб сек...
Ну так ядро CPU же на 100% занято, нет ?
Почему все думают, что insert into table эквивалентен прямому write() ?
Там куча накладных расходов (которую мы постоянно пытаемся уменьшить)...
...
Рейтинг: 0 / 0
03.06.2021, 16:08
    #40075449
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
hvlad,

ты лучше скажи, почему гтт в 4.0 распухли на 10%.
...
Рейтинг: 0 / 0
03.06.2021, 16:58
    #40075463
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
kdv
ты лучше скажи, почему гтт в 4.0 распухли на 10%.
Не только GTT, и не на 10%.
Причина в исправленной баге https://github.com/FirebirdSQL/firebird/issues/6618
Т.к. на 3-ке это никак не воспроизводилось, то туда патч не портировали.
...
Рейтинг: 0 / 0
04.06.2021, 18:54
    #40075757
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Симонов Денис
4 Кб это очень мало. Сейчас БД по дефолту со страницей 8 Кб создаётся.
Размер страницы изменил, на результаты это практически не повлияло
...
Рейтинг: 0 / 0
05.06.2021, 13:34
    #40075830
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк Евгений,

какой проц, сколько памяти?
...
Рейтинг: 0 / 0
05.06.2021, 15:24
    #40075842
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Шавлюк Евгений,

уже выяснили, что некоторое замедление может появиться из-за большего кол-ва страниц,
которые выделяет FB4 по сравнению с пред. версиями.

Т.е. размер замедления зависит от :
- скорости диска (чему хуже, тем больше),
- ширины записи таблицы (чем шире, тем меньше)
- опции резервировния места в БД (если выкл, то не должно быть разницы вообще).

Я проверял на SSD и разницы не ощутил.
...
Рейтинг: 0 / 0
05.06.2021, 15:26
    #40075843
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
Добавлю. Если эте все записи проапдейтить (удалить), то вторая операция на fb4 должна выполняться несколько быстрее, чем на fb3 - т.к. не будет фрагментирования записей.
...
Рейтинг: 0 / 0
05.06.2021, 15:44
    #40075848
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замедление вставки в GTT для fb4 по сравнению с fb3
hvladТ.е. размер замедления зависит от :
- скорости диска (чему хуже, тем больше),
только если вся память занята, причем даже для кэша ОС нет места, что обычно редко случается.
И вообще - в воспроизведение "разницы" при повторах на разных версиях ФБ я не верю вообще. Ну как так-то, что, ОС не может освободить свой кэш?
Или речь идет про компы с 2гб памяти?
Где снимки rammap тогда?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Замедление вставки в GTT для fb4 по сравнению с fb3 / 25 сообщений из 27, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]