|
19.01.2005, 16:03 | #1 |
Участник
|
Значит возникла такая сложность:
Была создана в базе таблица которая содержит более 1 200 000 записей есть в программе функция удаления их однако она подвисает и выдает сообщение о переполнении памяти Как я понимаю это происходит из за того что сначала задается отбор строк по параметрам а затем запусакается функция удаления всего этого. т.е все идет в одной транзакции в чем и проблемма Как можно удалить записи в таблице или как написать функцию чтоб она для одной или группы записей из выбранного делала удаление |
|
19.01.2005, 17:02 | #2 |
Участник
|
Удаляйте по 5-10 тыс записей за раз.
Делайте цикл пока записей не останется |
|
19.01.2005, 17:38 | #3 |
Moderator
|
Да вообще-то проблем быть недолжно. Может срабатывает триггер ОнДелит, тогда стоит его временно заремить. Если он критичен, тогда действительно по 10 тыс. записей удаляйте.
|
|
19.01.2005, 21:44 | #4 |
Участник
|
COMMIT только не забывайте ставить после каждых 10тыс.
Кстати при удалении из функции действительно можно вызывать DELETE(FALSE). И ещё. Если удаляете данные в какой-то книге, то не забывайте что в случае с SQL должны отработать триггера для очистки SIFT. На это тоже нужно делать скидку... |
|