Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
ВнизDelete + Update Найти похожие ветки
← →
Nick87 (2008-09-25 12:22) [0]Поделитесь советами. Имеется таблица содержащая порядка 10 000 записей. необходимо последовательно выполнить 2 запроса (Delete и Update). Таки образом под условия запросов подпадает порядка 8000 записей. Нормальным ли является общее время выполнения этих запросов около 2 минут.
Вот вообщемто сам код. (СУБД FIB)
Result := -1;
if ConnectionStatus = csConnected then
with cmp_Query_, cmp_DataBase do begin
try
StartTransaction;
try
SQL.Text := Format("DELETE FROM Types WHERE (%s = %s) AND (types_code = -1);UPDATE Types SET flags = 1 WHERE (%s = %s) AND (flags NOT IN (1, -1))", [FSelFieldName, Val, FselFieldName, Val];
ExecSQL;
Commit;
Result := RowsAffected;
except
Rollback;
raise;
end;
except
on E: Exception do
LogError(E.Message);
end;
end
else
LogError(const_msg_ErrorConnection);
← →
Поросенок Винни-Пух © (2008-09-25 12:28) [1]после массового делита полезно сделать уборку мусора (версий строк)
← →
Правильный$Вася (2008-09-25 12:41) [2]
> Поросенок Винни-Пух © (25.09.08 12:28) [1]
только в случае разовой операции удаления
в программе же не стоит этого делать
лучше обратить внимание на план выполнения каждого запроса и улучшить его, если есть возможность
← →
Sergey13 © (2008-09-25 13:06) [3]> [0] Nick87 (25.09.08 12:22)
> Нормальным ли является общее время выполнения этих запросов около 2 минут.
Многовато что-то, ИМХО. А какой из двух тормозит больше?
← →
Nick87 (2008-09-25 13:12) [4]
> > [0] Nick87 (25.09.08 12:22)> Нормальным ли является
> общее время выполнения этих запросов около 2 минут.Многовато
> что-то, ИМХО. А какой из двух тормозит больше?
2 (Update)
← →
Правильный$Вася (2008-09-25 13:13) [5]
> СУБД FIB
что это?
← →
Ega23 © (2008-09-25 13:17) [6]
>
> > СУБД FIB
>
> что это?
Фускин InterBase ?
← →
Nick87 (2008-09-25 13:22) [7]FireBird 2.0
← →
Sergey13 © (2008-09-25 13:26) [8]> [4] Nick87 (25.09.08 13:12)
Попробуй flags NOT IN (1, -1) заменить на flags<>1 and flags<>-1.
← →
Sergey13 © (2008-09-25 13:27) [9]> [4] Nick87 (25.09.08 13:12)
А вообще недурно бы структуру таблицы с индексами опубликовать. И план посмотреть.
← →
Правильный$Вася (2008-09-25 13:27) [10]
> под условия запросов подпадает порядка 8000 записей
так под удаление или под изменение?
или в сумме? - тогда каждый вотдельности охарактеризуй
и план смотри, может, где-то индексировать надо
← →
Правильный$Вася (2008-09-25 13:28) [11]
> Попробуй flags NOT IN (1, -1) заменить на flags<>1 and flags<>-1.
FB умеет скобки раскрывать
а про план я давно сказал
← →
ЮЮ © (2008-09-26 02:55) [12]А как быстро рвботвют ъти же запросы, если поставить SELECT вместо DELETE и UPDATE.
DELETE тормозит, нсли на эту таблицу есть CONSTRAINT FOREIGN KEY из другой таблицы, а индекса по тому полю нет. Тогда FULL SCAN второй таблицы перед удалением каждой записи обеспечен.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c