Как увеличить скорость вставки в Firebird 1.5

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
DonMiguel
Сообщения: 3
Зарегистрирован: 30 мар 2005, 18:09

Как увеличить скорость вставки в Firebird 1.5

Сообщение DonMiguel » 30 мар 2005, 18:17

Машина P IV 2.8 памяти 512
Вставка примерно 3000 записей занимает 6 минут.
Уважаемые гуру, как можно уменьшить это время - что то мне говорит о том, что это время очень большое.
Работа идет через OLE DB через free IB Provider.

Желательно уменьшить это время - но я не знаю как. Авто коммит отключали - prepare перед вставкой делали. Ничего не помогает.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: Как увеличить скорость вставки в Firebird 1.5

Сообщение Merlin » 30 мар 2005, 20:39

DonMiguel писал(а):Машина P IV 2.8 памяти 512
Вставка примерно 3000 записей занимает 6 минут.
Это ж... Это ж... Жестокое насилие на ж-ю Василия (С) Она должна занимать нуу... нуу... 0.3 сек максимум. Это если в таблицу без индексов, с одним PK и чиста серверными средствами, то есть в одной SP. Так штаа... Не знаю даже где искать. Мысли скачут как зайцы. От мегатонн мусора в таблице и астрономического разрыва OAT - Next, через таблицу немерянной ширины и длины, увешанную по самое небалуй индексами по полям типа "Да/Нет", до включенного журналирования файла базы средствами оси по каждому изменению.

DonMiguel
Сообщения: 3
Зарегистрирован: 30 мар 2005, 18:09

Сообщение DonMiguel » 30 мар 2005, 23:52

Вот и я в непонятках - таблица аж из 6 полей - 4 из них внешние ключи, один PK и поле факта. Во всем естественно составлен индекс. Но даже тут не должно быть такой низкой производительности. Базу бекапили рестоили - бесполезно.
Все поля многозначные в ссмыле не да/нет, хотя по всем 4 уникальный индекс такое может давать?
Более того, таблица ПУСТАЯ перед вставкой.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 31 мар 2005, 00:31

да ты лучше объясни, КАК и ИЗ ЧЕГО ты эти 6 тыщ записей вставляешь. бывают такие лихие способы, что можно и за минут 30.

DonMiguel
Сообщения: 3
Зарегистрирован: 30 мар 2005, 18:09

Сообщение DonMiguel » 01 апр 2005, 00:19

Разобрались в чем дело - разработчик клиента использовал куросоры обнонаправленные и в результате получилось учень весело.
1) проход берем первую запись из источника
2) проход фетчим 2 записи
3) проход фетчим 3 записи
-------
ну и так далее в арифметичской прогресии (спасибо не геометрической) - после устранения проблемы все (заливка плюс обработка) стало занимать 15 секунд.

<offtop>
:twisted: блин взбаламутили - аж два гуру местного пошиба пяткой в грудь стучали на тему что вставка тормозит... любители VB блин
пришлось цельну прогу на дельфях писать, чтобы показать, что вставка 3000 записей 2 секунды при самом плохом раскладе
</offtop>

Лысый
Сообщения: 177
Зарегистрирован: 08 ноя 2004, 08:20

Сообщение Лысый » 01 апр 2005, 08:50

DonMiguel писал(а): любители VB блин
Это ты про кого? :evil:

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 01 апр 2005, 09:58

дык, оно сразу было ясно, что разработчик так и сделал.

Ответить