Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
15-1220966449
{RASkov}
2008-09-09 17:20
2008.11.02
Excel


2-1222177041
начинающий сетевик
2008-09-23 17:37
2008.11.02
Обмен сообщениями по сети


15-1221052864
Palladin
2008-09-10 17:21
2008.11.02
Драйвера устройства в самом устройстве


4-1199137051
Riply
2008-01-01 00:37
2008.11.02
Фрагментация временного пространства.


15-1220774723
Denis__
2008-09-07 12:05
2008.11.02
Книги по алгоритмам