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

Часовой пояс: 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 часа


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

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


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

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