Текущее время: Вс, авг 03 2025, 14:56

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: ALV ест память
СообщениеДобавлено: Ср, июн 20 2007, 16:24 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
Никто не сталкивался с такой проблемой, что при вызове alv-списка, программа отъедает памяти в несколько раз больше, чем до вызова?
В моем случае ALV вызывается так:

Code:
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program                = repid
    i_callback_user_command           = 'USER_COMMAND'
    i_grid_settings                   = s_glay
    it_fieldcat                       = t_fieldcat
    i_save                            = 'A'
    it_events                         = gt_events
    is_variant                        = s_variant
    i_html_height_top                 = 25
  TABLES
    t_outtab                          = result.


Размер таблицы result - 300 Мб; перед вызовом эту же цифру показывает SM04. После вызова (но до выхода из ALV, т.е. до возврата из ФМ 'REUSE_ALV_GRID_DISPLAY'), SM 04 показывает 1900Мб. После выхода из ФМ - опять 300 Мб.

В чем тут может быть дело?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 20 2007, 16:42 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Дело в самом ALV. На каждую ячейку выводимой таблицы заполняется строка с типом LVC_S_DATA. За "красивости" платим памятью.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 20 2007, 19:12 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Вообще странный вопрос, к тому же обозначенный как проблема.
Вот если бы размер памяти, занятый программой, уменьшился, то тогда можно было бы сказать, что есть проблема ;-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV ест память
СообщениеДобавлено: Ср, июн 20 2007, 21:05 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
profiteer написал(а):
Размер таблицы result - 300 Мб


А может быть не стоит сразу выводить такую огромную таблицу пользователю? Что он будет с ней делать? Может дать возможность уточнять выборку и "проваливаться"?

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ALV ест память
СообщениеДобавлено: Чт, июн 21 2007, 02:16 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
Tetty написал:
profiteer написал(а):
Размер таблицы result - 300 Мб


А может быть не стоит сразу выводить такую огромную таблицу пользователю? Что он будет с ней делать? Может дать возможность уточнять выборку и "проваливаться"?


Это да, но проблема в том, что alv все-равно потребляет памяти в 6 раз больше, чем размер передаваемой ему таблицы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 21 2007, 09:29 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
используйте ALV_LIST, оно и записей держит больше


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:23 
Гость
А нет способов оптимизации или ограничение идет только по количеству строк, как в примерах SLIS?

А если нужно по работе пользователей такое кол-во строк? Что делать?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:28 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Любаша, а если не секрет, зачем например пользователю нужно 100 тыс строк? Наверно только чтобы посмотреть итоги, верно? Так в этом случае достаточно сделать консолидацию по какому-нибудь полю и ввести галку "Консолидировать по ..." на селекционный экран.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:33 
Гость
vga написал(а):
Любаша, а если не секрет, зачем например пользователю нужно 100 тыс строк? Наверно только чтобы посмотреть итоги, верно? Так в этом случае достаточно сделать консолидацию по какому-нибудь полю и ввести галку "Консолидировать по ..." на селекционный экран.


Дела в том, что у меня грид уже сейчас, на тесте имеет 6000 строк и это ещё цветочки. Так поставлена задача. Вчера выяснила, что у него есть ограничение и на кол-во столбцов - их должно быть 99, а у меня было заложено 124. Теперь буду бороться с этим.

Я столько вложила сил в этот грид - и такой облом с памятью и быстодействием! Помогите, плиз!!!

Конечно, будем думать с нашими консультаттами над уменьшением строк в выборке. Это - основное. Надо это согласовыыать с пользователями. А они хотят, как в EXCEL. Вот и весь секрет.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:40 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Любаша, тык может формировать файл локально в формате scv и открывать в Excel? Это должно быть быстро.
Вы сами говорите, что хотят, как в Excel, примочек alv им не надо.


Последний раз редактировалось vga Чт, июн 28 2007, 08:41, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:41 
Гость
vga написал(а):
Любаша, тык может формировать файл локально в формате scv и открывать в Excel? Это должно быть быстро.


А вносить в него изменения и затем записывать их в Z-таблицы?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:43 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Дык это уже не как в Excel.
Значит Вы еще и редактирование ALV открываете, а это дополнительные накладные расходы, imho.

Может тогда alv избавить от редакирования, а при двойном щелчке на строку вызывать форму для заполнения полей? Может это уменьшит размер alv, хотя бы за счет того, что не надо выводить 99 колонок.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 08:58 
Гость
Кстати, подскажите простыми словами, что такое в методе
Code:
    CALL METHOD grid_1->set_table_for_first_display
      EXPORTING
        i_buffer_active      = 'X'                                 
        i_bypassing_buffer   = 'X'                             
?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 09:26 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
обязательно передавать такую широкую таблицу? может формировать ее динамически?

про буфер:

http://sapboard.ru/forum/viewtopic.php ... 311781bed7

еще раз повторюсь, может использовать ALV_LIST ? такая широкая ALV_GRID да с огромным чистом записей естественно будет тормозить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 09:45 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
Art386 написал:
обязательно передавать такую широкую таблицу? может формировать ее динамически?

про буфер:

http://sapboard.ru/forum/viewtopic.php ... 311781bed7

еще раз повторюсь, может использовать ALV_LIST ? такая широкая ALV_GRID да с огромным чистом записей естественно будет тормозить.


Сформировал структуру таблицы динамически - памяти стало жрать гораздо меньше.
Однако, это отменяет дефекта в ALV: контейнер, потребляющий в 7 раз больше памяти, чем его содержимое - это ненормально.

Писал по этому поводу в сап. Они утверждают, что в базисе 6.40 делались какие-то улучшения связанные с ALV. У нас - 6.20.


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

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


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

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


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

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