Текущее время: Пт, июл 25 2025, 04:15

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 09:40 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, авг 02 2007, 14:26
Сообщения: 443
Откуда: S/4 HANA
Пол: Мужской
Добрый день,
подскажите пожалуйста,
есть задача, в программе в фоновом режиме выбираются данные по материалам около 200 000 записей,
необходимо автоматически разбить это количество на процессы, на каждом процессе по 3000 записей, как это можно реализовать?

Спасибо


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 09:52 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
VLAVLA написал:
Добрый день,
подскажите пожалуйста,
есть задача, в программе в фоновом режиме выбираются данные по материалам около 200 000 записей,
необходимо автоматически разбить это количество на процессы, на каждом процессе по 3000 записей, как это можно реализовать?

Спасибо

CALL FUNCTION func STARTING NEW TASK task

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 09:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Не думаю, что можно разбить первичный SELECT, если эти 200 000 номеров заранее неизвестны. А если известны, то CALL FUNCTION func STARTING NEW TASK task для каждых трех тысяч.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 10:03 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Сергей Королев написал:
Не думаю, что можно разбить первичный SELECT, если эти 200 000 номеров заранее неизвестны. А если известны, то CALL FUNCTION func STARTING NEW TASK task для каждых трех тысяч.

А если использовать в сочетании с
3. ... INTO|APPENDING [CORRESPONDING FIELDS OF] TABLE itab [PACKAGE SIZE n]
?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 10:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
поскольку CALL STARTING NEW TASK это RFC, то думаю надо использовать OPEN CURSOR WITH HOLD, иначе курсор сбросится.
Но все равно ведь первый селект, из которого мы собственно и узнаем, сколько материалов нам надо обработать, не будет распараллелен.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 11:48 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, янв 30 2007, 10:59
Сообщения: 61
А можно узнать причину разбиения на процессы. Ограничения по памяти? И какой объем данных должен получиться в результате выполнения программы? Я к тому, что может можно найти другое решение, зная проблему.

_________________
Блаженны прыгающие, ибо они допрыгаются.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 14:36 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, авг 02 2007, 14:26
Сообщения: 443
Откуда: S/4 HANA
Пол: Мужской
SMak написал(а):
А можно узнать причину разбиения на процессы. Ограничения по памяти? И какой объем данных должен получиться в результате выполнения программы? Я к тому, что может можно найти другое решение, зная проблему.


Проблема во времени, 200 000 записей будет отрабатываться 3-4 суток, а 3 000 сооветственно быстрее. Для этой цели даже выделят отдельный сервер.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 14:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
VLAVLA написал:
Проблема во времени, 200 000 записей будет отрабатываться 3-4 суток, а 3 000 сооветственно быстрее. Для этой цели даже выделят отдельный сервер.

Это что же за алгоритм такой? :shock:

200000/3000 = 67 процессов.
Вы уверены, что на отдельном сервере будет столько диалоговых процессов?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 15:27 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, ноя 25 2010, 15:19
Сообщения: 4
Пол: Мужской
Сергей Королев написал:
Не думаю, что можно разбить первичный SELECT, если эти 200 000 номеров заранее неизвестны. А если известны, то CALL FUNCTION func STARTING NEW TASK task для каждых трех тысяч.

На сколько я понимаю task - это будет параметр, а чему он должен быть равен, чтобы разбивать первичную выборку на части?
Может есть пример в стандартной программе SAPa :?:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 15:50 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
SergL написал:
Сергей Королев написал:
Не думаю, что можно разбить первичный SELECT, если эти 200 000 номеров заранее неизвестны. А если известны, то CALL FUNCTION func STARTING NEW TASK task для каждых трех тысяч.

На сколько я понимаю task - это будет параметр, а чему он должен быть равен, чтобы разбивать первичную выборку на части?
Может есть пример в стандартной программе SAPa :?:

Читайте по F1 и используйте поиск по сайту и будут примеры.
Цитата:
For task, you must specify a character-type data object, which contains a task identifier for the called remote function module, which can be up to eight characters long and chosen at will. This task ID should be unique for each call; it is passed to the callback routines to identify the function. Every task ID defines its own RFC connection with its own context, so that for repeated calls of function modules of the same task ID, the global data of the respective function group can be accessed, provided that the connection still stands.


_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 16:37 
Ассистент
Ассистент

Зарегистрирован:
Чт, июл 22 2010, 19:53
Сообщения: 34
Удав написал(а):
VLAVLA написал:
Проблема во времени, 200 000 записей будет отрабатываться 3-4 суток, а 3 000 сооветственно быстрее. Для этой цели даже выделят отдельный сервер.

Это что же за алгоритм такой? :shock:

200000/3000 = 67 процессов.
Вы уверены, что на отдельном сервере будет столько диалоговых процессов?


Ну не думаю что ТС хотел именно каждому таску отдельный процесс (хотя сравнение 3000 и 200000 намекает),
можно ж ограничить кол-во отжираемых процессов некритичным для сервера числом.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 17:10 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, авг 02 2007, 14:26
Сообщения: 443
Откуда: S/4 HANA
Пол: Мужской
Удав написал(а):
VLAVLA написал:
Проблема во времени, 200 000 записей будет отрабатываться 3-4 суток, а 3 000 сооветственно быстрее. Для этой цели даже выделят отдельный сервер.

Это что же за алгоритм такой? :shock:

200000/3000 = 67 процессов.
Вы уверены, что на отдельном сервере будет столько диалоговых процессов?



Да, алгоритм такой - точно лучше сделать нельзя.
А что такого если будет 67 процессов?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 17:24 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
VLAVLA написал:

Да, алгоритм такой - точно лучше сделать нельзя.
А что такого если будет 67 процессов?

Как правило, так много диалоговых процессов не делают, не выделяют.
Отсюда идут ограничения на время диалогового шага и т.п.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 17:30 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
sy-uname написал(а):
Как правило, так много диалоговых процессов не делают, не выделяют.
Отсюда идут ограничения на время диалогового шага и т.п.

А что такого если их выделить? У одного клиента в продуктиве кластер из 3 серверов по 60 диалоговых процессов на каждом. Вроде как сап помогал производительность настраивать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разбиение на процессы
СообщениеДобавлено: Чт, ноя 25 2010, 18:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Konstantin Anikeev написал:
А что такого если их выделить? У одного клиента в продуктиве кластер из 3 серверов по 60 диалоговых процессов на каждом. Вроде как сап помогал производительность настраивать.

Рекомендации SAP - одно процессорное ядро на один процесс. Интересно узнать стоимость этого решения :wink:
И если железка ставится только для одной задачи, то вряд ли она будет очень мощной...

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB