powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Время жизни временного блоба
16 сообщений из 16, страница 1 из 1
Время жизни временного блоба
    #38635688
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько живёт временный блоб?
И почему выполнение данного кода с каждым разом в пределах сессии всё медленне и медленне? И коммит не помогает ситуации?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
execute block as
declare variable blb blob sub_type text;
declare variable blb2 blob sub_type text;
declare variable n int = 10;
begin
--  in autonomous transaction do
--  begin
      select first(1) file from loads into :blb;
      while (n > 0) do
      begin
        blb2 = replace(:blb, ';', '--');
        n = n - 1;
      end
--  end
end
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38635922
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

http://www.ibase.ru/devinfo/dbgrowth.html

внимательно.
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38635985
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvafgm,

http://www.ibase.ru/devinfo/dbgrowth.html

внимательно.
Прочитал ещё раз. Ничего нового не узнал.
В моём случае выполняю вышеприведённый код и сразу подтверждаю транзакцию. Потом ещё раз выполняю и подтверждаю. и так несколько раз. С каждым разом время выполнения растёт. Почему? Статья на этот вопрос не отвечает.
Пробовал сделать автономку (закоментированый код), чтобы гарантировано исключать магию IBE. Результат аналогичный. Помогает переподсоединение к БД. Причём после работы такой процедуры с блобами увеличивается время отсоединения от БД. Тоже не очень понятно, учитывая что блобы уничтожаются при завершении транзакции.
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636007
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

какое время выполнения, насколько оно растет с каким количеством вызовов?
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636174
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvafgm,

какое время выполнения, насколько оно растет с каким количеством вызовов?
Вот результат одиночных вызовов выполнение-коммит с убраными коментариями для подключения автономки.
Размер блоба ~10М
Performance info
------ Performance info ------
Prepare time = 0ms
Execute time = 1s 684ms
Current memory = 545 908 016
Max memory = 566 478 136
Memory buffers = 32 768
Reads from disk to cache = 628
Writes from cache to disk = 2
Fetches from cache = 23 650

------ Performance info ------
Prepare time = 0ms
Execute time = 6s 255ms
Current memory = 546 463 520
Max memory = 566 984 328
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 2
Fetches from cache = 75 192 550

------ Performance info ------
Prepare time = 0ms
Execute time = 10s 842ms
Current memory = 547 019 632
Max memory = 567 538 184
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 2
Fetches from cache = 150 361 450

------ Performance info ------
Prepare time = 0ms
Execute time = 11s 559ms
Current memory = 547 460 208
Max memory = 567 979 816
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 2 563
Fetches from cache = 150 361 450©

------ Performance info ------
Prepare time = 0ms
Execute time = 13s 338ms
Current memory = 547 411 904
Max memory = 567 979 816
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 8 551
Fetches from cache = 150 361 450

------ Performance info ------
Prepare time = 0ms
Execute time = 18s 424ms
Current memory = 547 411 904
Max memory = 567 979 816
Memory buffers = 32 768
Reads from disk to cache = 1
Writes from cache to disk = 8 543
Fetches from cache = 225 530 350

------ Performance info ------
Prepare time = 0ms
Execute time = 18s 626ms
Current memory = 547 411 960
Max memory = 567 979 816
Memory buffers = 32 768
Reads from disk to cache = 1
Writes from cache to disk = 8 551
Fetches from cache = 225 530 350

------ Performance info ------
Prepare time = 0ms
Execute time = 18s 236ms
Current memory = 547 411 960
Max memory = 567 979 816
Memory buffers = 32 768
Reads from disk to cache = 1
Writes from cache to disk = 8 549
Fetches from cache = 225 530 350
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636286
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmkdvafgm,

какое время выполнения, насколько оно растет с каким количеством вызовов?
Вот результат одиночных вызовов выполнение-коммит с убраными коментариями для подключения автономки.
Размер блоба ~10М
------ Performance info ------
Prepare time = 0ms
Execute time = 1s 684ms
Current memory = 545 908 016
Max memory = 566 478 136
Memory buffers = 32 768
Reads from disk to cache = 628
Writes from cache to disk = 2
Fetches from cache = 23 650

...

------ Performance info ------
Prepare time = 0ms
Execute time = 18s 236ms
Current memory = 547 411 960
Max memory = 567 979 816
Memory buffers = 32 768
Reads from disk to cache = 1
Writes from cache to disk = 8 549
Fetches from cache = 225 530 350


из кэша вылетает, что не понятно?
Т.е. при первой записи влязит в кэш при последних совсем не влазит. Кэш насколько понимаю выделяется под конкретный кусок файла бд ( условно ), временные блобы каждый раз новые куски файла.
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636321
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolayV81из кэша вылетает, что не понятно?
Т.е. при первой записи влязит в кэш при последних совсем не влазит. Кэш насколько понимаю выделяется под конкретный кусок файла бд ( условно ), временные блобы каждый раз новые куски файла.
Да это понятно. Вопрос: Как бороться? И почему умершие блобы увеличивают Fetches from cache, которые скорее всего и тормозят. Попробовал в тройке погонять, а там всё хорошо.
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636333
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

ты тройку наверное как супер запускал, а 2.5 как классик?
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636353
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисты тройку наверное как супер запускал, а 2.5 как классик?
И там и там супер.
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636376
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgm,

можешь троечный результат привести? Чисто для интереса
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636394
afgm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисможешь троечный результат привести? Чисто для интереса
Firebird 3.0 Performance info
Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
------ Performance info ------
Prepare time = 0ms
Execute time = 1s 576ms
Current memory = 558 064 808
Max memory = 578 625 192
Memory buffers = 32 768
Reads from disk to cache = 630
Writes from cache to disk = 2
Fetches from cache = 24 909

------ Performance info ------
Prepare time = 0ms
Execute time = 1s 653ms
Current memory = 558 063 984
Max memory = 578 625 192
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 9 303
Fetches from cache = 24 909

------ Performance info ------
Prepare time = 16ms
Execute time = 1s 622ms
Current memory = 558 063 984
Max memory = 578 625 192
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 9 303
Fetches from cache = 24 909

------ Performance info ------
Prepare time = 0ms
Execute time = 1s 669ms
Current memory = 558 063 984
Max memory = 578 625 192
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 9 303
Fetches from cache = 24 909

------ Performance info ------
Prepare time = 0ms
Execute time = 1s 669ms
Current memory = 558 063 984
Max memory = 578 625 192
Memory buffers = 32 768
Reads from disk to cache = 0
Writes from cache to disk = 9 303
Fetches from cache = 24 909
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636697
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
afgmПопробовал в тройке погонять, а там всё хорошо.
Потому что там как раз отслеживание жизни блобов фиксилось Владом.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636753
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

о как! Счётчик ссылок что ли ввели?
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636775
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисСчётчик ссылок что ли ввели?
Подробностей не знаю, но это точно не счётчик. Скорее списки временных блобов в транзакции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38636781
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

а может это фоновый сборщик мусора просто лучше работает
...
Рейтинг: 0 / 0
Время жизни временного блоба
    #38638170
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDL:
Код: plaintext
1.
2.
3.
4.
recreate table tb(b blob);
commit;
insert into tb
select list( uuid_to_char(gen_uuid()) ) from rdb$types, rdb$types, (select 1 i from rdb$types rows 3 );
commit;

Создаем .sql файлик, в который пишем вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
set term ^;
execute block as
declare variable b1 blob sub_type text;
declare variable b2 blob sub_type text;
declare variable n int = 10;
begin
      select b from tb rows 1 into :b1;
      while (n > 0) do
      begin
        b2 = replace(:b1, '-', '#####');
        n = n - 1;
      end
end
^ set term ;^
commit; set transaction read only read committed;
- и размножаем этот код 1000 раз.

Далее запускаем:
1) трейс, с логированием в файл
2) isql localhost/3050:c:\тратата\эта_база.fdb -n -i этот_sql_скриптик

Даём помолотить минут 5. Грохаем isql.
Фильтруем лог трейса, вытаскивая из него время выполнения со статистикой.
Результат под спойлером.
Код: 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.
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.
   7050 ms, 7858 read(s), 2155 write(s), 34242 fetch(es), 26380 mark(s)

   6454 ms, 7858 read(s), 2607 write(s), 34242 fetch(es), 26380 mark(s)

   6798 ms, 7858 read(s), 3976 write(s), 34242 fetch(es), 26380 mark(s)

   7377 ms, 7858 read(s), 4094 write(s), 34242 fetch(es), 26380 mark(s)

   6580 ms, 7858 read(s), 3634 write(s), 34242 fetch(es), 26380 mark(s)

   5597 ms, 7858 read(s), 4001 write(s), 34242 fetch(es), 26380 mark(s)

   7637 ms, 7858 read(s), 3932 write(s), 34242 fetch(es), 26380 mark(s)

   5754 ms, 7858 read(s), 3385 write(s), 34242 fetch(es), 26380 mark(s)

   8341 ms, 7858 read(s), 2875 write(s), 34242 fetch(es), 26380 mark(s)

   6482 ms, 7858 read(s), 2107 write(s), 34242 fetch(es), 26380 mark(s)

   5009 ms, 7858 read(s), 2703 write(s), 34242 fetch(es), 26380 mark(s)

   8231 ms, 7858 read(s), 4654 write(s), 34242 fetch(es), 26380 mark(s)

   7281 ms, 7858 read(s), 3989 write(s), 34242 fetch(es), 26380 mark(s)

   5975 ms, 7858 read(s), 4220 write(s), 34242 fetch(es), 26380 mark(s)

   4785 ms, 7858 read(s), 3264 write(s), 34242 fetch(es), 26380 mark(s)

   7786 ms, 7858 read(s), 3441 write(s), 34242 fetch(es), 26380 mark(s)

   6699 ms, 7858 read(s), 1638 write(s), 34242 fetch(es), 26380 mark(s)

   7273 ms, 7858 read(s), 3266 write(s), 34242 fetch(es), 26380 mark(s)

   4669 ms, 7858 read(s), 2676 write(s), 34242 fetch(es), 26380 mark(s)

   4709 ms, 7858 read(s), 3019 write(s), 34242 fetch(es), 26380 mark(s)

   8039 ms, 7858 read(s), 4518 write(s), 34242 fetch(es), 26380 mark(s)

   8906 ms, 7858 read(s), 3320 write(s), 34242 fetch(es), 26380 mark(s)

   6850 ms, 7858 read(s), 1995 write(s), 34242 fetch(es), 26380 mark(s)

   7233 ms, 7858 read(s), 3057 write(s), 34242 fetch(es), 26380 mark(s)

   6710 ms, 7858 read(s), 1519 write(s), 34242 fetch(es), 26380 mark(s)

   6539 ms, 7858 read(s), 3294 write(s), 34242 fetch(es), 26380 mark(s)

   6100 ms, 7858 read(s), 4328 write(s), 34242 fetch(es), 26380 mark(s)
Время вып-я не растёт. Расход памяти - тоже (см аттач, это скрин с PE, когда ФБ молотил этот код)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Время жизни временного блоба
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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