Текущее время: Сб, авг 02 2025, 12:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 13:10 
Ассистент
Ассистент

Зарегистрирован:
Сб, фев 16 2008, 06:34
Сообщения: 39
Есть код ,который по времени очень долго работает,возможно ли еще внести изменения для оптимизирования процесса.
Code:
types kpp_intern_40 type standard table of kpp_intern_40_struc
заменить на
types kpp_intern_40 type hashed table of kpp_intern_40_struc .
а в свою очередь
data:i_intern    TYPE hashed table of kpp_intern_40_struc
with unique key  row  col.

FORM separated_to_intern_convert TABLES i_tab TYPE 
kcdu_srecs
                      >>>   i_intern    TYPE kpp_intern_40
      Заменить на i_intern   
                                 USING  i_separator TYPE c.

  DATA: l_sic_tabix TYPE sy-tabix,
        l_sic_col   TYPE kcdehead-col,
        l_fdpos     TYPE sy-fdpos,
        ls_tab      LIKE LINE OF i_tab,
        ls_intern   LIKE LINE OF i_intern.

  REFRESH i_intern.

  LOOP AT i_tab INTO ls_tab.
    l_sic_tabix = sy-tabix.
    l_sic_col = 0.
    WHILE ls_tab CA i_separator.
      l_fdpos = sy-fdpos.
      l_sic_col = l_sic_col + 1.
      PERFORM line_to_cell_separat TABLES i_intern
                                   USING  ls_tab l_sic_tabix l_sic_col
                                          i_separator l_fdpos.
    ENDWHILE.
    IF ls_tab <> space.
      CLEAR ls_intern.
      ls_intern-row = l_sic_tabix.
      ls_intern-col = l_sic_col + 1.
      ls_intern-value = ls_tab.
      APPEND ls_intern TO i_intern.
      Заменить на
      Insert ls_intern To table i_intern.
    ENDIF.
  ENDLOOP.
ENDFORM.                    "SEPARATED_TO_INTERN_CONVERT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 13:25 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
а что в подпрограмме line_to_cell_separat? В Большинстве случаев требуется оптимизация обращения к БД, может у Вас в этой подпрограмме select используется?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 13:31 
Ассистент
Ассистент

Зарегистрирован:
Сб, фев 16 2008, 06:34
Сообщения: 39
Besa написал:
а что в подпрограмме line_to_cell_separat? В Большинстве случаев требуется оптимизация обращения к БД, может у Вас в этой подпрограмме select используется?

Code:
FORM line_to_cell_separat TABLES i_intern    TYPE kpp_intern_40
                          USING  i_line      TYPE ANY
                                 i_row       TYPE sy-tabix
                                 ch_cell_col TYPE kcdehead-col
                                 i_separator TYPE c
                                 i_fdpos     TYPE sy-fdpos.

  DATA: l_string  TYPE kcde_sender_struc,
        l_sic_int TYPE i,
        ls_intern LIKE LINE OF i_intern.

  CLEAR ls_intern.
  l_sic_int = i_fdpos.
  ls_intern-row = i_row.
  l_string = i_line.
  ls_intern-col = ch_cell_col.
* csv Dateien mit separator in Zelle: --> ;"abc;cd";
  IF ( i_separator = ';' OR  i_separator = ',' ) AND
       l_string(1) = c_esc.
    PERFORM line_to_cell_esc_sep USING l_string
                                       l_sic_int
                                       i_separator
                                       ls_intern-value.
  ELSE.
    IF l_sic_int > 0.
      ls_intern-value = i_line(l_sic_int).
    ENDIF.
  ENDIF.
  IF l_sic_int > 0.
    APPEND ls_intern TO i_intern.
  ENDIF.
  l_sic_int = l_sic_int + 1.
  i_line = i_line+l_sic_int.
ENDFORM.                    "LINE_TO_CELL_SEPARAT



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 13:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Кажется мне, что нужно подробненько вам почитать про оператор SPLIT

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 13:39 
Ассистент
Ассистент

Зарегистрирован:
Сб, фев 16 2008, 06:34
Сообщения: 39
Сергей Королев написал:
Кажется мне, что нужно подробненько вам почитать про оператор SPLIT

Т.е .вы считаете ,что именно процедура PERFORM line_to_cell_separat тормозит весь процесс?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 13:43 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Гуля написал(а):
Т.е .вы считаете ,что именно процедура PERFORM line_to_cell_separat тормозит весь процесс?

дабы не гадать попусту - воспользуйтесь тр. SE30 - там наглядно будет видно где и что тормозит

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 14:48 
Ассистент
Ассистент

Зарегистрирован:
Сб, фев 16 2008, 06:34
Сообщения: 39
Объсните пожалуйста ,ну хотя бы кратенько про se30.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пт, янв 30 2009, 15:20 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Через SE30 запускаете свою программу (ФМ, транзакцию) на выполнение, программа работает, система собирает данные.
После окончания работы программы возвращаетесь опять в SE30 и там жмете кнопочку 'Анализ', система проанализирует работу вашей программы и выдаст расклад на какие операции сколько времени тратится. Соответственно оптимизировать нужно те места, на которые уходит больше всего времени.
Проще попробовать чем рассказывать, там все просто и интуитивно понятно

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как еще можно оптимизировать?
СообщениеДобавлено: Пн, фев 02 2009, 20:54 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Эта функциональность также доступнa напрямую из редактора (SE38). См. меню System -> Utilities -> Runtime Analysis ->Execute. И еще много чего полезного в том же меню есть.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

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


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

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