13.09.2006, 09:35 | #1 |
Участник
|
Длительное создание складских журналов
Стоит задача программного создания складских журналов. Предполагается создать 200 журналов по 1000 строк в каждом. При этом проставляем ссылки между складскими проводками: порождёнными создаваемой строкой журнала и соответствующей строкой заказа. Другими словами у двух выбираемых по InventTransId записей таблицы InventTRans записываем значение в поле InventRefTransId.
Проблема в том, что каждый из этих двух update'ов выполняется порядка 0.8 секунды, что весьма негативно сказывается на общем времени работы (приводит порядка к 40 часам работы всей процедуры). При этом пробовал select'ить InventTrans как с помощью findTransId(), так и просто select forupdate и с index и с index hint. На времени работы это не сказывается. doupdate() вместо update() тоже не помогает. Такое ощущение, что прооптимизировать данный запрос не возможно. Хотелось бы услышать мнения - можно ли ускорить описанное создание журналов. Что можно посоветовать в данной ситуации? Естественный вывод конечно же напрашивается - сначала создать журналы, потом проставлять ссылки. Спасибо заранее!
__________________
Paul_ST |
|
13.09.2006, 09:57 | #2 |
злыдень
|
Попробуйте выгнать всех из базы, зайти момнопольно и выполнить процедуру вне контекста транзакций skipttscheck(1).
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
13.09.2006, 10:52 | #3 |
Участник
|
Активных пользователей на момент импорта в базе нет
__________________
Paul_ST |
|