Текущее время: Вс, авг 03 2025, 23: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 часа


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

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


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

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