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

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
Замедление вставки в GTT для fb4 по сравнению с fb3
    #40075325
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
замени timestamp на timestamp without time zone и сравни еще раз
...
Рейтинг: 0 / 0
Замедление вставки в GTT для fb4 по сравнению с fb3
    #40075329
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, мне привиделось, что оно в цикле :-) Тогда ХЗ, вроде не должно быть таких отличий. Разберемся, как будет время.
...
Рейтинг: 0 / 0
Замедление вставки в GTT для fb4 по сравнению с fb3
    #40075330
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

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

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

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

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

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

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

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

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

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
Замедление вставки в GTT для fb4 по сравнению с fb3
    #40075395
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийНастройки fb3 и 4 идентичные

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

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

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

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

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

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

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

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

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

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

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


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