Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Оптимизация Update + Delete


Автор: NieL 25.9.2008, 11:35
Поделитесь советами. Имеется таблица содержащая порядка 10 000 записей. необходимо последовательно выполнить 2 запроса (Delete и Update). Таки образом под условия запросов подпадает порядка 8000 записей. является ли нормальным общее время выполнения этих запросов около 2 минут.

Вот вообщемто сам код. (СУБД DBISAM)

Код

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);

Автор: pseud 25.9.2008, 17:42
ну SQL сам как-нибудь оптимизируй (в смысле некуда уже)
а насчет остального:
попробуй не использовать транзакции и глянь сколько по времени выйдет.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)