Текущее время: Вт, апр 16 2024, 15:40

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Оптимизация
СообщениеДобавлено: Чт, июн 15 2017, 09:25 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Прогнал программу через транзакцию SAT и получил такой результат
Изображение

Не очень понимаю почему вызов одного и того же ФМ-а занимает разное время и так сильно отличается. Количество вызовов ФМ-ов одинаковое. Сами вызовы тоже идентичны
Code:
  CALL FUNCTION 'ZPM_WORKS_GET_FACT_FROM_BSIS'
    EXPORTING
      iv_kstar_group = lc_kstar_group
      iv_bukrs       = ps_data-bukrs
      iv_aufnr       = ps_data-aufnr
    IMPORTING
      et_bsis        = lt_bsis[].


Может кто подскажет в чем тут дело? Погрешности подсчета?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация
СообщениеДобавлено: Чт, июн 15 2017, 09:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
Вы посмотрите на места вызовов этого ФМ. Скорее всего ФМ вызывается с разными параметрами. Параметры задают условия с которыми работает ФМ. Вполне возможно, что в одном случае условия таковы, что выполняется большой и сложный алгоритм, а в другом - может быть просто выход сразу. И даже может быть такая же работа при одних и тех же параметрах. Самый простой пример: кэшированное чтение. При первом вызове с набором параметров идет чтение из БД (медленно), а при втором - уже чтение из кэша.
И даже при чтении из БД тоже такое может быть, т.к. может происходить кэширование на уровне самой БД.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация
СообщениеДобавлено: Чт, июн 15 2017, 09:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Кодер, нет вызовы ИДЕНТИЧНЫ. Т.е. параметры различаются конечно, но в обоих случаях поведение идентично - первый вызов читает из БД, все последующие из кеша. Собственно сам ФМ как раз и написан для кешированного чтения.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация
СообщениеДобавлено: Чт, июн 15 2017, 11:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
Ну так вы же сами все и объяснили: первое чтение из бд , второе - из кэша. Вот и разница. Кто из них тормозит - смотрите сами внимательно ( т.к. если кэш сделали\используете плохо, то тупить будет он, а не бд).

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация  Тема решена
СообщениеДобавлено: Чт, июн 15 2017, 11:37 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 16:38
Сообщения: 301
Имеется ввиду первое чтение при аналогичных параметрах.

Но в общем нашел я ошибку. Как оказалось (как всегда) сам стормозил. Я из БД читаю данные, потом их сортирую по нужному полю. Только вот при чтении из внутренней таблицы я забыл указать BINARY SEARCH.
В одном случае всего 2 тыс записей и отсутствие BIUNARY SEARCH особо не влияет. А в другом случае 90 тыс. записей, поэтому и получается такой перекос в работе :(

всем спасибо за участие - не забывайте про BINARY SEARCH!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимизация
СообщениеДобавлено: Чт, июн 15 2017, 12:51 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 09:38
Сообщения: 170
Если таблица будет использоваться преимущественно для многократного чтения без операций модицификации, желательно использовать sorted или hash, для избежания таких вот проблем.


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

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


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

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


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

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