Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1220990592
KilkennyCat
2008-09-10 00:03
2008.11.02
Delphi и веб-камера


2-1222216922
Lamer6666
2008-09-24 04:42
2008.11.02
Zeos+MySQL


1-1201174663
Elec3C
2008-01-24 14:37
2008.11.02
Свойства файла


2-1221981870
DmT
2008-09-21 11:24
2008.11.02
Как вкомпилить dll в exe


4-1198793355
Domoffou
2007-12-28 01:09
2008.11.02
RichEdit20W - перехват текста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский