powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / удаление по частям в версии 7
7 сообщений из 7, страница 1 из 1
удаление по частям в версии 7
    #35060573
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, Коллеги.

подскажите, пожалуйста, аналог этому
Код: plaintext
delete from (select * from t1 fetch first  100  rows only)
для DB2 ver 7.2
Суть задачи в том, что бы разбить процедуру удаления данных из
большой таблицы на части, исключив возможные блокировки и
минимизировав нагрузку.

Спасибо.
...
Рейтинг: 0 / 0
удаление по частям в версии 7
    #35060579
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запрос немного упрощен :-)
...
Рейтинг: 0 / 0
удаление по частям в версии 7
    #35060777
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.
Нет под рукой v7.2, но должно работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
CREATE PROCEDURE DELNREC(
  IN TBNAME VARCHAR( 128 )
, IN STMT VARCHAR( 1024 )
)
LANGUAGE SQL

BEGIN ATOMIC

 DECLARE I INT;
 DECLARE SQLCODE INT;
 DECLARE stmt_del VARCHAR( 1024 );
 DECLARE C1 CURSOR FOR S1;

 SET stmt = stmt || ' FOR UPDATE';
 PREPARE S1 FROM stmt;
 OPEN C1;
 SET stmt_del = 'DELETE FROM ' || rtrim(TBNAME) || ' WHERE CURRENT OF C1';
 PREPARE S2 FROM stmt_del;
 FETCH C1 INTO I;
 WHILE (SQLCODE!= 100 ) DO
  EXECUTE S2;
  FETCH C1 INTO I;
 END WHILE;
 CLOSE C1;

END@

call DELNREC('t1', 'select 1 from t1 fetch first 100 rows only')@
...
Рейтинг: 0 / 0
удаление по частям в версии 7
    #35063863
alter table MyTable add column Counter_ integer;
create sequence s1 [start with.....] ;
update table MyTable set Counter_ = nextval for s1;
delete from MyTable where Counter_ < _threshold1_;
delete from MyTable where Counter_ < _threshold2_;
delete from MyTable where Counter_ < _threshold3_;
...
...
Рейтинг: 0 / 0
удаление по частям в версии 7
    #35066190
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinДобрый вечер.
Нет под рукой v7.2, но должно работать:

Код: plaintext
1.
2.
CREATE PROCEDURE DELNREC(
.....

Марк,
большое Вам спасибо за интересную процедуру
к сожалению мне не удалось воспользоваться ей
вот что я получил при попытке создания
Код: plaintext
1.
2.
3.
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL1109N  The specified DLL "db2udp" could not be loaded.  SQLSTATE= 42724 
пошарился в инете и нашел вот это
авторThis error occurs if the DB2 Application Development Tools and DB2 Application Development Client components are not selected.
The Db2udp is in the install component 'DB2 Application Development Tools(ADT)' which is in the product selection of 'DB2 Application Development Client'.
это если кому интересно чем продолжился разговор )))
ну на тестовую систему доставлю, а вот с продуктивом пока не знаю :(
...
Рейтинг: 0 / 0
удаление по частям в версии 7
    #35066198
use-se
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извращенецalter table MyTable add column Counter_ integer;
create sequence s1 [start with.....] ;
update table MyTable set Counter_ = nextval for s1;
delete from MyTable where Counter_ < _threshold1_;
delete from MyTable where Counter_ < _threshold2_;
delete from MyTable where Counter_ < _threshold3_;
...
Спасибо, но этот вариант не катит )
...
Рейтинг: 0 / 0
удаление по частям в версии 7
    #35067466
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторну на тестовую систему доставлю, а вот с продуктивом пока не знаю :(
на тестовой системе GET_ROUTINE, на продуктиве PUT_ROUTINE.
подробности смотерть в доке по v7.2
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / удаление по частям в версии 7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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