Скорость инсертов

18 views
Skip to first unread message

Tonal

unread,
Jul 7, 2010, 2:39:26 AM7/7/10
to ru-fi...@googlegroups.com
Наткнулся на странную вещь: при массовой загрузки данных в базу скорость
последовательности инсертов уменьшается на 1/6 если все они в одной
транзакции.
Память сервера тоже растёт, но это как бы ожидаемо...
Я что-то не так делаю?

Платформа: Kubuntu 10.4
Сервер: FirebirdSS-2.5.0.26038-ReleaseCandidate3.i686.tar.gz
Тайминг с 1 коммитом на всё:
11:08:06 start
11:08:11 5000
11:08:18 10000
11:08:26 15000
11:08:36 20000
11:08:47 25000
11:09:00 30000
11:09:16 35000
11:09:33 40000
11:09:53 45000
11:10:15 50000
11:10:39 55000
...
Память сервера доходит до 500мб.

Тайминг с коммитом на каждые 5000 запмсей:
13:07:50 start
13:07:56 5000
13:08:02 10000
13:08:08 15000
13:08:14 20000
13:08:20 25000
13:08:26 30000
13:08:32 35000
13:08:38 40000
13:08:44 45000
13:08:50 50000
13:08:56 55000
...
Память сервера доходит не поднимается выше 20мб.

Клиент - простенький скрипт на python-е делающий 2 параметрических
инсерта в разные таблицы на цикл.

Таблицы:
CREATE TABLE SYMPTOMS (
ID D_ID,
TITLE_EN D_TITLE,
TITLE_RU D_TITLE,
CHAPT_ID D_ID,
PARENT_ID D_ID_OR_NULL,
CATEG_ID D_ID,
DISABLED D_BOOL DEFAULT 0,
COPIED D_BOOL DEFAULT 0,
VERS D_VERS,
CONSTRAINT PK_SYMPTOMS PRIMARY KEY (ID),
CONSTRAINT UNQ_SYMPTOMS_VERS UNIQUE (VERS)
);
ALTER TABLE SYMPTOMS ADD CONSTRAINT FK_SYMPTOMS_CATEG_ID
FOREIGN KEY (CATEG_ID) REFERENCES SYMP_CATEGS (ID);
ALTER TABLE SYMPTOMS ADD CONSTRAINT FK_SYMPTOMS_CHAPT_ID
FOREIGN KEY (CHAPT_ID) REFERENCES CHAPTERS (ID) ON DELETE CASCADE;
ALTER TABLE SYMPTOMS ADD CONSTRAINT FK_SYMPTOMS_PARENT_ID
FOREIGN KEY (PARENT_ID) REFERENCES SYMPTOMS (ID);

CREATE TABLE SYMPTOMS_OLD (
ID D_ID,
OBJ_ID D_ID,
SYS_ID D_ID,
EXT_ID D_NUM,
VERS D_VERS,
CONSTRAINT PK_SYMPTOMS_OLD PRIMARY KEY (ID),
CONSTRAINT UNQ_SYMPTOMS_OLD_OSE UNIQUE (OBJ_ID,SYS_ID,EXT_ID),
CONSTRAINT UNQ_SYMPTOMS_OLD_VERS UNIQUE (VERS)
);
ALTER TABLE SYMPTOMS_OLD ADD CONSTRAINT FK_SYMPTOMS_OLD_OBJ_ID
FOREIGN KEY (OBJ_ID) REFERENCES SYMPTOMS (ID);
ALTER TABLE SYMPTOMS_OLD ADD CONSTRAINT FK_SYMPTOMS_OLD_SYS_ID
FOREIGN KEY (SYS_ID) REFERENCES REP_SYSTEMS (ID);

На обоих таблицах триггера генерят ID и VERS и бросают EVENT:
CREATE TRIGGER (TableName)_GEN_ID ACTIVE
BEFORE INSERT POSITION 0
as
begin
if (new.ID is null) then
new.ID = gen_id(GEN_(TableName)_ID, 1);
end
CREATE TRIGGER (TableName)_SET_VERS ACTIVE
BEFORE INSERT OR UPDATE POSITION 1
as
begin
new.VERS = gen_id(GEN_(TableName)_VERS, 1);
end
CREATE TRIGGER (TableName)_MODIFY ACTIVE
AFTER INSERT OR UPDATE POSITION 0
as
begin
post_event '(TableName)_MODIFY';
end

--
Александр Замараев

Tonal

unread,
Jul 7, 2010, 3:03:45 AM7/7/10
to ru-fi...@googlegroups.com
Забыл текст самих инсертов:
insert into SYMPTOMS (
CHAPT_ID, PARENT_ID, TITLE_EN, TITLE_RU, CATEG_ID
) values (
?, ?, ?, null, ?
) returning ID

insert into SYMPTOMS_OLD (
OBJ_ID, SYS_ID, EXT_ID
) values (?, ?, ?)

Проверил на последнем снапшоте:
FirebirdSS-2.5.0.26050-ReleaseCandidate3.i686.tar.gz
Картина таже. :(
--
Александр Замараев

Vlad Khorsun

unread,
Jul 7, 2010, 3:32:45 AM7/7/10
to ru-fi...@googlegroups.com
"Tonal" ...
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫: О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ 1/6 О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
> О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫тёО©╫, О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫...
> О©╫ О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫?
...
> О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ID О©╫ VERS О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ EVENT:
...

О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ EVENT ?

--
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫


Евгений Виноградный

unread,
Jul 7, 2010, 5:02:48 AM7/7/10
to ru-fi...@googlegroups.com
On 07.07.2010 10:39, Tonal wrote:
> Наткнулся на странную вещь: при массовой загрузки данных в базу скорость
> последовательности инсертов уменьшается на 1/6 если все они в одной
> транзакции.
> Память сервера тоже растёт, но это как бы ожидаемо...
> Я что-то не так делаю?

Да, и на предыдущих версиях (1.5 - 2.1) где то после 150-200 INSERT в
одной транзакции удельная скорость вставки понижалась, причем
существенно. Возможно, это какие то особенности реализации сервера
проявляются.

С уважением,
Евгений Виноградный.

Vlad Khorsun

unread,
Jul 7, 2010, 5:09:47 AM7/7/10
to ru-fi...@googlegroups.com
"О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫" ...

> О©╫О©╫, О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (1.5 - 2.1) О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ 150-200 INSERT О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫,
> О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.

О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.

Tonal

unread,
Jul 9, 2010, 4:48:08 AM7/9/10
to ru-fi...@googlegroups.com
07.07.2010 14:32, Vlad Khorsun О©╫О©╫О©╫О©╫О©╫:

>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫: О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ 1/6 О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫
>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
> ...
>> О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ID О©╫ VERS О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ EVENT:
> О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ EVENT ?
О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.

О©╫ О©╫ чёО©╫ О©╫О©╫О©╫О©╫О©╫О©╫? О©╫О©╫О©╫О©╫О©╫ EVENT-О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫чёО©╫О©╫О©╫О©╫О©╫. О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ 2 О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫?
--
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫

Khorsun Vlad

unread,
Jul 23, 2010, 3:00:38 AM7/23/10
to ru-fi...@googlegroups.com
"Tonal" ...

О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (DFW) О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ POST_EVENT О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫чёО©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ?

Tonal

unread,
Jul 26, 2010, 12:47:14 AM7/26/10
to ru-fi...@googlegroups.com
23.07.2010 14:00, Khorsun Vlad О©╫О©╫О©╫О©╫О©╫:

>> О©╫ О©╫ чёО©╫ О©╫О©╫О©╫О©╫О©╫О©╫? О©╫О©╫О©╫О©╫О©╫ EVENT-О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫чёО©╫О©╫О©╫О©╫О©╫. О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
>> О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ 2 О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫?
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ (DFW) О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ POST_EVENT О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫ О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫чёО©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫. :)

> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ?
CORE-3079
--
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫

Khorsun Vlad

unread,
Jul 26, 2010, 2:04:50 AM7/26/10
to ru-fi...@googlegroups.com
"Tonal" ...

О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ :) О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ :)

>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ?
> CORE-3079

О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫-О©╫О©╫О©╫О©╫О©╫О©╫. О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫дёО©╫ О©╫ 2.5.0,
О©╫О©╫О©╫О©╫О©╫О©╫ RC4 О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.

--
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫

PS О©╫О©╫О©╫ О©╫щё О©╫чёО©╫О©╫О©╫О©╫ О©╫ event'О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, 1 О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ ?


Tonal

unread,
Jul 26, 2010, 5:59:27 AM7/26/10
to ru-fi...@googlegroups.com
26.07.2010 13:04, Khorsun Vlad О©╫О©╫О©╫О©╫О©╫:

> PS О©╫О©╫О©╫ О©╫щё О©╫чёО©╫О©╫О©╫О©╫ О©╫ event'О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫, 1 О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ - О©╫чёО©╫О©╫О©╫О©╫ 1 О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
--
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫

Reply all
Reply to author
Forward
0 new messages