powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE - DELETE FROM table как бы сделать по быстерее
5 сообщений из 5, страница 1 из 1
ASE - DELETE FROM table как бы сделать по быстерее
    #34052742
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База ASE 12.5.0.3
Вопрос максимум до сегодняшнего вечера.
Есть таблица назовем ее f_datepole в ней 60 миллионов записей , пять полей три CONSTRAINT все полся с индексами. К сожалению половина этих записей занеслась ошибочно т.к. в главном поле этой таблицы date_time значение NULL и все такие строки нужно удалить.

Естественно делать DELETE FROM f_datepole WHERE date_time is null; нельзя по понятным причинам. Таблица активно используется пользователями и особо удалять днем из нее нельзя. Я написал процедуру и запустил ее на ночь, она смогла удалить к утру пол миллиона. :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE PROCEDURE dbo.prc_temp; 1 
AS
BEGIN
    declare @f_datepole int

    SELECT @f_datepole = Min (f_datepole) FROM f_datepole WHERE date_time is null

    WHILE @f_datepole >  0 
    BEGIN
        DELETE FROM f_datepole WHERE f_datepole = @f_datepole
        SELECT @f_datepole = Min (f_datepole) FROM f_datepole WHERE date_time is null
    END
END

Вопрос. Как бы удалить за выходные все NULL значения, не выходя на работу.
...
Рейтинг: 0 / 0
ASE - DELETE FROM table как бы сделать по быстерее
    #34052888
karitos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно попробовать что то вроде этого

Код: plaintext
1.
2.
3.
4.
5.
6.
set rowcount  100  -- // 1000 ...
while  1 = 1 
begin
  delete ......
  commit
  waitfor delay '00:00:30'
end
...
Рейтинг: 0 / 0
ASE - DELETE FROM table как бы сделать по быстерее
    #34052927
Фотография Badger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
karitosможно попробовать что то вроде этого

Код: plaintext
1.
2.
3.
4.
5.
6.
set rowcount  100  -- // 1000 ...
while  1 = 1 
begin
  delete ......
  commit
  waitfor delay '00:00:30'
end
Да, это точно будет быстрее....
...
Рейтинг: 0 / 0
ASE - DELETE FROM table как бы сделать по быстерее
    #34056427
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем это будет быстрее -- не понятно.
...
Рейтинг: 0 / 0
ASE - DELETE FROM table как бы сделать по быстерее
    #34057399
гость123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivЧем это будет быстрее -- не понятно.
Тем, что удаление будет не по 1 записи, а порциями.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE - DELETE FROM table как бы сделать по быстерее
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]