powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
25 сообщений из 161, страница 1 из 7
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352151
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

В этом топеге буду складывать вопросы, появляющиеся по результатам сравнения - если увижу, что 3.0 в чем-то уступает 2.5.

Запускаю на одной и той же машине старые тесты, сначала на WI-V2.5.3.26682 (SuperClassic), а затем на WI-T3.0.0.30567 (SuperServer).

Данные по машине: Win-2003 Server SP2, CPU 2.4 GHz (2 core), RAM 1 Gb (увы, но только это).

Пока что нарыл некоторое ухудшение скорости вставок в GTT.
Исходный вопрос обсуждался тут: http://www.sql.ru/forum/860810-2/gtt-on-commit-delete-rows-nenulevye-writes-fetches-pri-commit-e-why

Дано:
1) две пустые базы, для 2.5 и 3.0, на обеих pagesize=4K, FW = OFF и кеш = 65535
2) DDL:
Код: sql
1.
2.
3.
recreate global temporary table gttdel(s varchar(36)) on commit DELETE ROWS; commit;
recreate global temporary table gttsav(s varchar(36)) on commit PRESERVE ROWS; commit;
recreate table fixtab(s varchar(36)); commit;

3) выполняю на каждой базе по очереди следующие три серии запросов:
Код: sql
1.
2.
3.
4.
5.
set stat on; insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;

set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit; quit;

insert into fixtab select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000;

(NB: для GTT, которая on commit PRESERVE rows, сразу после её заполнения и коммита делаю quit, дабы 2-й и последующий замеры снова начинались с нулевого состояния этой таблицы).

Результаты:
1) время вставок в GTT'шки увеличилось в 3.0 по сравнению с 2.5, от 15% (для preserve rows) до 40% (для commit rows).
2) время вставок в fixed-таблицу увеличилось в 3.0 примерно на 10-15%

Вот статистика по reads/writes/fetches (БЕЗ времени выполнения):
Server versionВид таблицыСтатистикаЗатраты на insert 1'000'000 строкЗатраты на commit2.5.3.26682GTT on commit DELETE rowsReads11Writes2620445Fetches5237537204562.5.3.26682GTT on commit DELETE rowsReads381Writes2620444Fetches523783512.5.3.26682GTT on commit DELETE rowsReads11Writes4220446Fetches52375911xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3.0.0.30567GTT on commit DELETE rowsReads420Writes2820435Fetches5242686204583.0.0.30567GTT on commit DELETE rowsReads10Writes2220435Fetches524252313.0.0.30567GTT on commit DELETE rowsReads1840Writes8820439Fetches52914041
- из которой видно, что эти параметры (reads/writes/fetches ) НЕ изменились.

А вот статистика по времени выполнения:
1. для GTT on commit DELETE rows: среднее увеличение времени вставок ~40%
Server versionОперацияизм_1изм_2изм_3изм_4изм_5изм_6изм_7изм_8изм_9изм_102.5.3.26682insert 1'000'000 rows3.193.193.183.193.213.193.213.193.193.213.0.0.30567""4.564.564.574.564.564.554.564.574.564.562.5.3.26682commit0.281.881.800.280.271.710.280.282.670.263.0.0.30567""1.750.290.300.300.320.301.860.310.300.29
2. для GTT on commit PRESERVE rows: среднее увеличение времени вставок ~15%
Server versionОперацияизм_1изм_2изм_3изм_4изм_5изм_6изм_7изм_8изм_9изм_102.5.3.26682insert 1'000'000 rows5.025.115.135.275.215.275.705.065.315.173.0.0.30567""6.306.426.376.176.326.426.286.236.366.432.5.3.26682commit0.250.270.270.270.250.270.250.260.250.173.0.0.30567""0.260.280.270.280.280.280.280.260.280.26
3. для FIXED-таблицы: среднее увеличение времени вставок ~10-12%
Server versionОперацияизм_1изм_2изм_3изм_4изм_5изм_6изм_7изм_8изм_9изм_102.5.3.26682insert 1'000'000 rows4.534.503.093.374.824.203.354.743.803.033.0.0.30567""5.474.494.434.474.414.414.394.544.414.412.5.3.26682commit2.231.971.661.771.751.981.832.011.762.033.0.0.30567""1.911.902.041.922.232.021.941.912.111.97
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352153
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сравни-ка всё то же самое, но с pagesize=16K, FW = ON

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352157
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамА сравни-ка всё то же самое, но с pagesize=16K, FW = ONпоясни, плз, что это даст ?
FW = ON никак не должен повлиять на результаты GTT'шек. А увеличение pagesize должно обязательно привести к увеличению времени вставок/коммитов, но разве должны нарушиться их соотношения ?
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352159
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,
Ты лучше свой тест с конкурентными вставками или апдейтами проверь.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352164
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидПока что нарыл некоторое ухудшение скорости вставок в GTTВот как в двух операциях (select + insert) ты однозначно увидел замедление именно вставок ?
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352165
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидА увеличение pagesize должно обязательно привести к увеличению времени вставок/коммитовС чего бы это ?
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352167
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЗапускаю на одной и той же машине старые тесты, сначала на WI-V2.5.3.26682 (SuperClassic), а затем на WI-T3.0.0.30567 (SuperServer).Ты сравниваешь апельсины с огурцами.
Сделай им хотя бы кеши одинаковые.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352168
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисТы лучше свой тест с конкурентными вставками или апдейтами проверь.Это тоже будет, попозжее только. Сейчас надо простые штуки сравнить.
Кстати: и в 2.5 и в 3.0 при commit'e в gtt on commit DELETE rows движок развивает бурную деятельность, смысл которой мне непонятен:
Код: plaintext
1.
2.
3.
4.
5.
6.
2013-08-01T20:58:46.7030 (3240:00F12A08) COMMIT_TRANSACTION
        perf30 (ATT_62, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1668
                (TRA_61, CONCURRENCY | WAIT | READ_WRITE)
    285 ms, 20435 write(s),   20458 fetch(es), 20434 mark(s)  
-- от чего тут так много фетчей и "марок" ? 
-- и зачем их делать вообще, когда таблица тут же "коцается" ?

Тогда как в остальных двух случаях (gtt on commit PRESERVE и fixed-table) всё вполне пристойно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
2013-08-01T21:00:18.3120 (3240:00F12A08) COMMIT_TRANSACTION
        perf30 (ATT_62, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1668
                (TRA_62, CONCURRENCY | WAIT | READ_WRITE)
    291 ms, 20435 write(s),  1 fetch(es), 1 mark(s) 

2013-08-01T21:02:06.5780 (3240:00F12A08) COMMIT_TRANSACTION
        perf30 (ATT_62, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1668
                (TRA_63, CONCURRENCY | WAIT | READ_WRITE)
   2009 ms, 20438 write(s),  1 fetch(es), 1 mark(s) 

(вроде бы я спрашивал уже про это, но найти не могу в ворохе своих же изысков )
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352170
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидА увеличение pagesize должно обязательно привести к увеличению времени вставок/коммитовС чего бы это ?дык напарывался уже, в 2.1 еще...
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352171
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидЗапускаю на одной и той же машине старые тесты, сначала на WI-V2.5.3.26682 (SuperClassic), а затем на WI-T3.0.0.30567 (SuperServer).Ты сравниваешь апельсины с огурцами.
Сделай им хотя бы кеши одинаковые.Я с SS не работал, по 65000 выставил.
Какой поставить-то в 3.0 ?
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352172
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид3) выполняю на каждой базе по очереди следующие три серии запросов:
Код: sql
1.
2.
3.
set stat on; insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;

set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit; quit;

Твои старые любимые грабли - первый запрос тратит время на расширение файла, второй запрос пользуется уже расширенным файлом.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352174
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидПока что нарыл некоторое ухудшение скорости вставок в GTTВот как в двух операциях (select + insert) ты однозначно увидел замедление именно вставок ?гм... но селект-то идёт из одной и той же "бочки"! а вставки - по разным "флаконам" :-)
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352176
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидКстати: и в 2.5 и в 3.0 при commit'e в gtt on commit DELETE rows движок развивает бурную деятельность, смысл которой мне непонятен:
Код: plaintext
1.
2.
3.
4.
5.
6.
2013-08-01T20:58:46.7030 (3240:00F12A08) COMMIT_TRANSACTION
        perf30 (ATT_62, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1668
                (TRA_61, CONCURRENCY | WAIT | READ_WRITE)
    285 ms, 20435 write(s),   20458 fetch(es), 20434 mark(s)  
-- от чего тут так много фетчей и "марок" ? 
-- и зачем их делать вообще, когда таблица тут же "коцается" ?
При освобождении страниц данных GTT помечает место в PIP, как свободное
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352178
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТвои старые любимые грабли - первый запрос тратит время на расширение файла, второй запрос пользуется уже расширенным файлом.йок. ибо:
Код: sql
1.
2.
3.
4.
set stat on; insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;

set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit; 
quit; -- ############### NB ######################

ну, и в первом посте:
автор(NB: для GTT, которая on commit PRESERVE rows, сразу после её заполнения и коммита делаю quit, дабы 2-й и последующий замеры снова начинались с нулевого состояния этой таб
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352179
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидйокТа ты шо :)
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352183
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПри освобождении страниц данных GTT помечает место в PIP, как свободноеДля чего это делать ? всё равно страницы GTT'шки с on commit delete rows никогда не будут видны даже транзакции "А", стартовавшей в одном коннекте с транзакцией "Б". Как только коммит будет - "ку-ку", вся таблица снова нулевая.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352185
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидйокТа ты шо :)"Как же это так, кормилец ?!" (С)
Если я сделал quit из единственного коннекта, а после - очередной коннект, то что... fb_temp_xxx разве НОВЫЙ не создастся ?!
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352223
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидhvladПри освобождении страниц данных GTT помечает место в PIP, как свободноеДля чего это делать ?А что такое PIP ?
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352224
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЕсли я сделал quit из единственного коннекта...Ты сегодня в ударе :)
Перечитай ещё раз:
hvladпервый запрос тратит время на расширение файла, второй запрос пользуется уже расширенным файломи ещё разhvlad первый запрос тратит время на расширение файла, второй запрос пользуется уже расширенным файломи потом - ещё раз, контрольный
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352253
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПеречитай ещё раз <...> и потом - ещё раз, контрольныйПеречитал. Дошло, спасибо :-)
Сделал заново для GTT'шек (без fixed-таблиц), добавил QUIT после каждого insert + commit.

Ну, так вот: всё равно в ФБ-3 время больше.
Вот "сырой" отчет, но надеюсь, в нём всё понятно:

1. для 2.5:
Код: 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.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
#################
2.5; buff = 65535
#################

#############  gtt on commit DELETE rows  ##################
SQL> set stat on; insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;  quit ;
Current memory = 283260972
Delta memory = 106148
Max memory = 283878040
Elapsed time= 5.17 sec   5.16   5.14   5.01   5.17
Buffers = 65535
Reads = 35
Writes 26
Fetches = 5237790
Current memory = 283253164
Delta memory = -7808
Max memory = 283878040
Elapsed time= 0.27 sec   0.27   0.27   0.26   0.26
Buffers = 65535
Reads = 1
Writes 20434
Fetches = 20456

trace:
------
insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from r
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN JOIN (RDB$FIELDS NATURAL, RDB$FIELDS NATURAL, RDB$FIELDS NATURAL)
0 records fetched
   5204 ms, 1 read(s), 26 write(s), 5237112 fetch(es), 1122525 mark(s)

Table                             Natural     Index    Update    Insert
***********************************************************************
RDB$FIELDS                        1008198
GTTDEL                                                          1000000
<...>
2013-08-01T23:30:14.5780 (1264:01F1BEB8) COMMIT_TRANSACTION
        perf25 (ATT_38, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:2084
                (TRA_82, CONCURRENCY | WAIT | READ_WRITE)
   2186 ms, 1 read(s), 20434 write(s), 20456 fetch(es), 20433 mark(s)


#############  gtt on commit PRESERVE rows  ##################
SQL> set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;  quit; 
Database:  192.168.0.201/3252:perf25, User: sysdba
SQL> set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows
 1000000; commit; quit;
Current memory = 283260980
Delta memory = 106156
Max memory = 283878048
Elapsed time= 5.27 sec   5.06   5.17   5.53   5.30
Buffers = 65535
Reads = 35
Writes 26
Fetches = 5237795
Current memory = 283253324
Delta memory = -7656
Max memory = 283878048
Elapsed time= 0.27 sec   0.27   0.27   0.25   0.26
Buffers = 65535
Reads = 1
Writes 20434
Fetches = 1

trace:
------
insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from r
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN JOIN (RDB$FIELDS NATURAL, RDB$FIELDS NATURAL, RDB$FIELDS NATURAL)
0 records fetched
   5346 ms, 1 read(s), 26 write(s), 5237112 fetch(es), 1122525 mark(s)

Table                             Natural     Index    Update    Insert
***********************************************************************
RDB$FIELDS                        1008198
GTTSAV                                                          1000000
<...>
2013-08-01T23:30:28.4060 (1264:01F1BEB8) COMMIT_TRANSACTION
        perf25 (ATT_39, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:2016
                (TRA_83, CONCURRENCY | WAIT | READ_WRITE)
    259 ms, 1 read(s), 20434 write(s), 1 fetch(es), 1 mark(s)

2. Для 3.0:
Код: 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.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
#################
3.0; buff = 65535
#################

#############  gtt on commit DELETE rows  ##################
SQL> set stat on; insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;  quit; 
Current memory = 810656
Delta memory = 380696
Max memory = 1448536
Elapsed time= 6.41 sec   6.47   6.16   6.31   6.36
Buffers = 65535
Reads = 42
Writes 28
Fetches = 5242686
Current memory = 789408
Delta memory = -21248
Max memory = 1448536
Elapsed time= 0.29 sec   0.30   0.30   0.28   0.30
Buffers = 65535
Reads = 0
Writes 20435
Fetches = 20458

trace:
------
insert into gttdel select 'abcdefghijklmnopqrstuvwxyz0123456789' from rd
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN JOIN (RDB$FIELDS NATURAL, RDB$FIELDS NATURAL, RDB$FIELDS NATURAL)
0 records fetched
   6301 ms, 4 read(s), 28 write(s), 5242479 fetch(es), 1122529 mark(s)

Table                             Natural     Index    Update    Insert
************************************************************************
RDB$FIELDS                        1007195
GTTDEL                                                          1000000

2013-08-01T23:16:53.5620 (3240:00F12A08) COMMIT_TRANSACTION
        perf30 (ATT_101, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:1604
                (TRA_80, CONCURRENCY | WAIT | READ_WRITE)
    288 ms, 20435 write(s), 20458 fetch(es), 20434 mark(s)



#############  gtt on commit PRESERVE rows  ##################
set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows 1000000; commit;  quit; 
Database:  192.168.0.201/3330:perf30, User: sysdba
SQL> set stat on; insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from rdb$fields,rdb$fields,rdb$fields rows
 1000000; commit; quit;
Current memory = 810664
Delta memory = 380704
Max memory = 1448544
Elapsed time= 6.36 sec    6.26   6.26   6.22  6.41
Buffers = 65535
Reads = 42
Writes 28
Fetches = 5242686
Current memory = 789592
Delta memory = -21072
Max memory = 1448544
Elapsed time= 0.29 sec    0.28   0.26   0.28  0.26
Buffers = 65535
Reads = 0
Writes 20435
Fetches = 1


trace:
------
insert into gttsav select 'abcdefghijklmnopqrstuvwxyz0123456789' from r
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PLAN JOIN (RDB$FIELDS NATURAL, RDB$FIELDS NATURAL, RDB$FIELDS NATURAL)
0 records fetched
   6207 ms, 4 read(s), 28 write(s), 5242479 fetch(es), 1122529 mark(s)

Table                             Natural     Index    Update    Insert
***********************************************************************
RDB$FIELDS                        1007195
GTTSAV                                                          1000000
<...>
2013-08-01T23:17:08.6090 (3240:00F11900) COMMIT_TRANSACTION
        perf30 (ATT_104, SYSDBA:NONE, NONE, TCPv4:192.168.43.96)
        C:\MIX\firebird\fb25\bin\isql.exe:608
                (TRA_81, CONCURRENCY | WAIT | READ_WRITE)
    279 ms, 20435 write(s), 1 fetch(es), 1 mark(s)
Время на insert'ы и commit'ы для GTT действительно НЕ зависит от её вида.
Но в ФБ 2.5 времени на это уходило меньше, отношение ~5/6.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352261
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТаблоидпропущено...
Для чего это делать ?А что такое PIP ? http://www.ibphoenix.com/resources/documents/design/doc_19 Page Inventory Page

Page Type 2 is a page inventory page (PIP). PIPs map allocated and free pages. The header of a PIP includes the offset on this page of the bit that indicates the first available page on the PIP.

The body of a PIP contains an array of single bits that reflect the state of pages in the database. If the bit is one, then the corresponding page is not in use. If the bit is zero, then the page is in use.

PIPs occur at regular intervals through the database, starting at page 1. The last page allocated on each PIP is the next PIP.
А это... как его...
Что в эту самую PIP для GTT'шек пишется ?
Раз их содержимое вообще вне базы хранится, то что будет содержать этот самый "array of single bits that reflect the state of pages in the database " для GTT'шек ?
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352477
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladкак в двух операциях (select + insert) ты однозначно увидел замедление именно вставок ?Проверил уже только вставки, никаких селектов - т.е. через execute block:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set stat on;
set term ^;
execute block as
declare n int=1000000;
begin
  while(n>0) do insert into gttdel values('abcdefghijklmnopqrstuvwxyz0123456789') returning :n-1 into n;
end^
set term ;^
commit;
quit;

- и аналогичный скрипт для таблицы gttsav.

Результат: замедляются именно ВСТАВКИ. Затраты на выборку из rdb$fields были микронные.
Замеры делал по 10 раз для каждого скрипта на каждой версии ФБ.
Отчет:
Код: 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.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
#################
 2.5 ; buff = 65535
#################

#############  gtt on commit DELETE rows  ##################
isql 192.168.0.201/3252:perf25 -n -user sysdba -pas masterke -i insgtt del .sql

Current memory = 283254328
Delta memory = 99492
Max memory = 283871644
Elapsed time=  5.11 sec    5.11    4.63   5.08   4.88   4.76   5.03   4.92   5.16   5.06 
Buffers = 65535
Reads = 34
Writes 26
Fetches = 3163667
Current memory = 283245252
Delta memory = -9076
Max memory = 283871644
Elapsed time= 0.26 sec  
Buffers = 65535
Reads = 1
Writes 20434
Fetches = 20456


trace:
------
execute block as
declare n int=1000000;
begin
  while(n>0) do insert into gttdel values('abcdefghijklmnopqrstuvwxyz012
end
0 records fetched
   5103 ms, 1 read(s), 26 write(s), 3163342 fetch(es), 1122525 mark(s)

Table                             Natural     Index    Update    Insert
xpunge
************************************************************************
******
GTTDEL                                                          1000000


#############  gtt on commit PRESERVE rows  ##################
isql 192.168.0.201/3252:perf25 -n -user sysdba -pas masterke -i insgtt sav .sql

Current memory = 283254340
Delta memory = 99500
Max memory = 283871656
Elapsed time=  4.78 sec    4.91   4.81   4.97   4.85   4.83   4.91   5.07   4.96   5.14 
Buffers = 65535
Reads = 34
Writes 26
Fetches = 3163672
Current memory = 283245404
Delta memory = -8936
Max memory = 283871656
Elapsed time= 0.26 sec
Buffers = 65535
Reads = 1
Writes 20434
Fetches = 1

trace:
------
execute block as
declare n int=1000000;
begin
  while(n>0) do insert into gttsav values('abcdefghijklmnopqrstuvwxyz01
end
0 records fetched
   5127 ms, 1 read(s), 26 write(s), 3163342 fetch(es), 1122525 mark(s)

Table                             Natural     Index    Update    Insert
xpunge
***********************************************************************
******
GTTSAV                                                          1000000

///////////////////////////////////////////////////////////////////////////////////////////////
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

#################
 3.0 ; buff = 65535
#################

#############  gtt on commit DELETE rows  ##################
C:\MIX\firebird\fb25>isql 192.168.0.201/3330:test30 -user sysdba -pas masterke -n -i insgtt del .sql
Current memory = 812232
Delta memory = 383224
Max memory = 1450312
Elapsed time=  5.75 sec   5.73   5.67   5.82   5.64   5.74   5.66   5.75   6.14   5.76 
Buffers = 65535
Reads = 39
Writes 28
Fetches = 3163552
Current memory = 788232
Delta memory = -24000
Max memory = 1450312
Elapsed time= 0.28 sec
Buffers = 65535
Reads = 0
Writes 20435
Fetches = 20458
trace:
   5759 ms, 1 read(s), 28 write(s), 3163346 fetch(es), 1122529 mark(s)

Table                             Natural     Index    Update    Insert
***********************************************************************
GTTDEL                                                          1000000

#############  gtt on commit PRESERVE rows  ##################
C:\MIX\firebird\fb25>isql 192.168.0.201/3330:test30 -user sysdba -pas masterke -n -i insgtt sav .sql
Current memory = 812232
Delta memory = 383224
Max memory = 1450312
Elapsed time=  6.22 sec   5.72   5.87   6.00   5.80   5.67   5.59   5.69   5.91   5.82 
Buffers = 65535
Reads = 39
Writes 28
Fetches = 3163552
Current memory = 788416
Delta memory = -23816
Max memory = 1450312
Elapsed time= 0.27 sec
Buffers = 65535
Reads = 0
Writes 20435
Fetches = 1

trace:
   5824 ms, 1 read(s), 28 write(s), 3163346 fetch(es), 1122529 mark(s)

Table                             Natural     Index    Update    Insert
xpunge
*************************************************************************
GTTSAV                                                          1000000


Соотношение между временем вставок, КМК, осталось таким же: 5/6 в пользу ФБ 2.5
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352495
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,
Стабильность курсора требует определённых затрат + nbackup (который теперь работает быстрее).
Может быть ещё найдут способ ускорить.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352520
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЧто в эту самую PIP для GTT'шек пишется ?
Раз их содержимое вообще вне базы хранится, то что будет содержать этот самый "array of single bits that reflect the state of pages in the database " для GTT'шек ?Ты не поверишь, но временный файл с данными GTT имеет такую же структуру, как и обычная БД.
И я писал об этом, насколько я помню.
...
Рейтинг: 0 / 0
Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
    #38352525
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисСтабильность курсора требует определённых затрат + nbackup (который теперь работает быстрее).Хорошая попытка, но мимо, по крайней мере в данном тесте :)

Новый общий кеш в однопоточных тестах работает несколько медленнее, чем раньше.
Ибо синхронизация, которой раньше не было, требует жертв.

Симонов ДенисМожет быть ещё найдут способ ускорить.Правильно, и этим тоже занимаемся.
...
Рейтинг: 0 / 0
25 сообщений из 161, страница 1 из 7
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сравнение производительности 2.5.3 vs 3.0 (перечитывая старые тесты)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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