Текущее время: Сб, июл 19 2025, 19:30

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Проблема оптимизации
СообщениеДобавлено: Вт, сен 26 2006, 09:00 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Здравствуйте! Пишу репорт через SE38, использую select, выбираю данные из COEP и COBK во внутреннюю таблицу. Если большой диапазан выборки то вываливается дамп.
Подскажите пожалуцста, можно ли как то оптимизировать процесс?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:10 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, сен 12 2006, 16:36
Сообщения: 4
А что в дампе пишут? :) Цитатку приведи. И сам селект тоже
- без него никак тебе не помочь.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:17 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Надо полгать памяти не хватает


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:26 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, мар 25 2005, 11:46
Сообщения: 282
Откуда: SPb
А может и по таймауту выкидывает... Уж лучше цитатку увидеть, тогда и диагноз...

_________________
Лучше сделать и пожалеть, чем не сделать и потом жалеть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:27 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
а может ranges слишком большой :) цытатку в студию

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:29 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Aqua написал(а):
А что в дампе пишут? :) Цитатку приведи. И сам селект тоже
- без него никак тебе не помочь.


В дампе пишут Тайм Аут мол...
На самом деле тут наверно не в селекте дело...
Выбирает он довольно быстро, а потом во втором цикле когда суммирует долго крутится...

if d1 = d2 and god1 = god2.
select * from coep where kstar = VZ1
and werks = be
and perio = d2
and gjahr = god1.

select * from cobk
where belnr = coep-belnr and
budat between date1 and date2
and blart = 'WE'
and orgvg = 'RMWF'
and stflg <> 'X'
and stokz <> 'X'.
if sy-subrc = 0.
move-corresponding cobk to tab1.
endif.
endselect.
move-corresponding coep to tab1.
append tab1.
endselect.
if sy-subrc <> 0.
write: / 'Отсутствуют записи удовлетворяющие запросу', /
'ДАННЫЕ НЕ ВЫБРАНЫ!'.
else.
sort tab1 by objnr.
loop at tab1.
select * from coep where objnr = tab1-objnr
and kstar = VZ.
sumTR = sumTR + coep-wtgbtr.
endselect.
tab1-s1 = sumTR.
modify tab1.
clear sumTR.
endloop.
loop at tab1.
t_count = sy-tabix.
write: /
t_count,
tab1-budat,
tab1-objnr,
tab1-wtgbtr,
tab1-kstar,
tab1-s1,
tab1-s2,
tab1-blart,
tab1-belnr.
endloop.
endif.
write: / 'Всего записей:', t_count.
else.
write: / 'Обе даты должны находиться в одном календарном месяце и в
одном году..', /
'ДАННЫЕ НЕ ВЫБРАНЫ!'.
endif.

Извени за корявость текста - я первый раз.. :oops:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:29 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
А может таймаут. Кто его разберет та, без кода и дампа.

Правим:
А я прав оказался, тайм аут таки :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:35 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Код ужасный. Во-первых - не используй select ... endselect. Делай выборку into table. Во-вторых - используй агрегаты в запросах (select ... sum ...)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:39 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, мар 25 2005, 11:46
Сообщения: 282
Откуда: SPb
По поводу оптимизации много советов можно привести:) Однако в текущем виде не будет вываливаться, если допустим раз в 100 проходов цикла вывести чтонить гуей (количество обработанных записей например, ФМ SAPGUI_PROGRESS_INDICATOR). А дальше можно и пооптимизировать...

_________________
Лучше сделать и пожалеть, чем не сделать и потом жалеть.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:48 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Люди спасибо!! Буду пробовать...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:49 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, сен 12 2006, 16:36
Сообщения: 4
Оптимизация сдесь просто необходима. Правильно уже
сказали - селект .... энд селект не используй, не делай внутри
селект .... энд селект еще один селект .... энд селект.
Напиши используя JOIN один селект причем INTO TABLE.
Потом делай обработку этой внутр. таблицы и в ней уже
расчеты.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 09:57 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Aqua написал(а):
Оптимизация сдесь просто необходима. Правильно уже
сказали - селект .... энд селект не используй, не делай внутри
селект .... энд селект еще один селект .... энд селект.
Напиши используя JOIN один селект причем INTO TABLE.
Потом делай обработку этой внутр. таблицы и в ней уже
расчеты.


Напиши пожалуйста синтаксис Join и into table. Я сперва join-ом и хотел но чего - то не получилось у меня. Поэтому один в другой селект насувал :shock: ..
Я 3 недели назад ABAP впервые увидел..
Та кчто если глупости буду спрашивать СОРРИ :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 10:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
рекомендую ознакомиться с материалами курса BC490... естественно, после базисных курсов по разработке приложений... :roll:

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 10:45 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Ну если в двух словах то пример вот:
Code:
select sum( coep~wtgbtr ) *другие поля* from coep inner join cobk on
                         coep~belnr = cobk~belnr into table *своя внутр. табл.*
                         where *свои условия*


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 26 2006, 10:57 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 26 2006, 08:37
Сообщения: 79
Откуда: Москва/Тюмень
Пономарев Артем написал:
Ну если в двух словах то пример вот:
Code:
select sum( coep~wtgbtr ) *другие поля* from coep inner join cobk on
                         coep~belnr = cobk~belnr into table *своя внутр. табл.*
                         where *свои условия*

спасибо...


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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