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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пт, мар 20 2009, 19:31 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 15 2008, 16:22
Сообщения: 72
Существует ли ограничение на количество данных во внутренней таблице, или в нее можно поместить любое количетсво строк?
Т.е. можно ли, например считать все материалы во внутреннюю таблицу, или в результате такого запроса выпадет дамп?
Code:
   SELECT * from mat into table it_mat.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?  Тема решена
СообщениеДобавлено: Пт, мар 20 2009, 21:20 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Изя Шниперсон написал(а):
Существует ли ограничение на количество данных во внутренней таблице, или в нее можно поместить любое количетсво строк?
Т.е. можно ли, например считать все материалы во внутреннюю таблицу, или в результате такого запроса выпадет дамп?
Code:
   SELECT * from mat into table it_mat.

Internal Tables:
Цитата:
Internal Tables as Dynamic Data Objects

Internal tables are always completely specified regarding row type, key and access type. However, the number of lines is not fixed. Thus internal tables are dynamic data objects, since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration) is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the internal table.

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Вс, мар 22 2009, 16:37 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
Изя Шниперсон написал(а):
Существует ли ограничение на количество данных во внутренней таблице, или в нее можно поместить любое количетсво строк?


Размер вн табл не может превысить того кол-ва, которое определяется параметрами ограничения размера памяти сессии, пользователя ..., если конечно они установлены. Если же эти параметры не установлены по нормальному, вн табл сможет всю память сервера :)

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 12:38 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 15 2008, 16:22
Сообщения: 72
Sergo написал:
Изя Шниперсон написал(а):
Существует ли ограничение на количество данных во внутренней таблице, или в нее можно поместить любое количетсво строк?


Размер вн табл не может превысить того кол-ва, которое определяется параметрами ограничения размера памяти сессии, пользователя ..., если конечно они установлены. Если же эти параметры не установлены по нормальному, вн табл сможет всю память сервера :)



Спасибо за развернутый ответ, а как же тогда написать запрос во внутреннюю таблицу, если выборка может превысить размер памяти сессии?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 12:40 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Изя Шниперсон, используйте курсор и читайте данные кусками.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 12:43 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 07 2006, 12:48
Сообщения: 76
Пол: Мужской
Изя Шниперсон написал(а):
Спасибо за развернутый ответ, а как же тогда написать запрос во внутреннюю таблицу, если выборка может превысить размер памяти сессии?


При выполнении выборки, если вся память на сессию израсходавана, то выпадет дамп с указанием превышения размера.

Good luck.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 14:45 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 15 2008, 16:22
Сообщения: 72
WhiteScorpio написал:
Изя Шниперсон написал(а):
Спасибо за развернутый ответ, а как же тогда написать запрос во внутреннюю таблицу, если выборка может превысить размер памяти сессии?


При выполнении выборки, если вся память на сессию израсходавана, то выпадет дамп с указанием превышения размера.

Good luck.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 14:46 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Еще раз:
Изя Шниперсон, используйте курсор и читайте данные кусками.

F1 + open cursor / fetch cursor поможет.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 15:07 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 07 2006, 12:48
Сообщения: 76
Пол: Мужской
Пономарев Артем написал:
Еще раз:
Изя Шниперсон, используйте курсор и читайте данные кусками.

F1 + open cursor / fetch cursor поможет.


А как определить, что следующая запись будет критической для памяти (не хватка)?!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 15:15 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Зачем? :shock:

-> Читаете некоторое кол-во записей во внутреннюю таблицу -> Обрабатываете. Чистите таблицу. ->
<----------------------------------------------------------------------------------------------------------------------------------


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 15:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Изя Шниперсон написал(а):
Спасибо за развернутый ответ, а как же тогда написать запрос во внутреннюю таблицу, если выборка может превысить размер памяти сессии?

1. Обрабатывать данные с помощью OPEN CURSOR, как советует Артем Пономарев

2.Воспользоваться конструкцией
SELECT .... PACKAGE SIZE n
INTO TABLE ...

...
ENDSELECT.

3.Использовать функции агрегации данных SUM, MAX и т.п. в SELECT .. GROUP BY

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 19:01 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 07 2006, 12:48
Сообщения: 76
Пол: Мужской
Пономарев Артем написал:
Зачем? :shock:

-> Читаете некоторое кол-во записей во внутреннюю таблицу -> Обрабатываете. Чистите таблицу. ->
<----------------------------------------------------------------------------------------------------------------------------------


Я не заметил, что говорили о том, что данные будут, в итоге, агрегироваться. Т.ч. ответ не точен.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 19:02 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 07 2006, 12:48
Сообщения: 76
Пол: Мужской
Удав написал(а):
Изя Шниперсон написал(а):
Спасибо за развернутый ответ, а как же тогда написать запрос во внутреннюю таблицу, если выборка может превысить размер памяти сессии?

1. Обрабатывать данные с помощью OPEN CURSOR, как советует Артем Пономарев

2.Воспользоваться конструкцией
SELECT .... PACKAGE SIZE n
INTO TABLE ...

...
ENDSELECT.

3.Использовать функции агрегации данных SUM, MAX и т.п. в SELECT .. GROUP BY


Если PACKAGE SIZE использовать для FOR ALL ENTRIES, то ДА (как я считаю), а для другого?! Можете пояснить?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 19:05 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 07 2006, 12:48
Сообщения: 76
Пол: Мужской
Удав написал(а):
3.Использовать функции агрегации данных SUM, MAX и т.п. в SELECT .. GROUP BY


SUM, MAX, и другие функции зависят от нагрузки, если таблица огромна, а количество обрабатываемых данных велико (>50%), то могут возникнуть сомнения - НУЖНО ЛИ?! ОПТИМАЛЬНО?!. Т.ч. требуется уточнение или более развернутый ответ, НЕ ТАК ЛИ?!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Каков максимальный размер внутренней таблицы?
СообщениеДобавлено: Пн, мар 23 2009, 23:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
WhiteScorpio написал:
Если PACKAGE SIZE использовать для FOR ALL ENTRIES, то ДА (как я считаю), а для другого?! Можете пояснить?

Как раз PACKAGE SIZE для FOR ALL ENTRIES не нужен.
PACKAGE SIZE разбивает выборку во внутреннюю таблицу на указанное количество записей и должен использоваться для обработки записей порциями.
Преимущества:
1.Фиксированный размер внутренней таблицы, т.е. возможность последовательной обработки данных без увеличения потребляемой памяти
2.Уменьшение количества запросов к БД по сравнению с FOR ALL ENTRIES
Недостатки:
Обработка должна быть достаточно быстрой, т.к. ENDELECT никто не отменял. :wink:

_________________
С уважением,
Удав.


Последний раз редактировалось Удав Пн, мар 23 2009, 23:18, всего редактировалось 1 раз.

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

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


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

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


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

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