Текущее время: Ср, июл 30 2025, 01:59

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 13:10 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, окт 16 2006, 07:31
Сообщения: 628
Откуда: СССР
Пол: Мужской
Друзья,
случайно наткнулся на тестер в SE30.
смотрите, оказывается хвалёный рид тэйбл не так уж и быстр?
Или что то не так?

Цитата:
ВремВып: 15 881 519 микросек.

DATA: BEGIN OF OUT0.
INCLUDE STRUCTURE ZANL1.
DATA: END OF OUT0.
DATA: SOUT LIKE OUT0 OCCURS 0,
IOUT LIKE OUT0 OCCURS 0 WITH HEADER LINE.
DATA: M type i.

select * from anla into corresponding fields of table iOUT.

M = 1. DO. READ TABLE iOUT INDEX M.
IF SY-SUBRC <> 0. EXIT. ENDIF.
MODIFY iOUT INDEX M.
M = M + 1. ENDDO.


Цитата:
ВремВып: 15 635 609 микросек.

DATA: BEGIN OF OUT0.
INCLUDE STRUCTURE ZANL1.
DATA: END OF OUT0.
DATA: SOUT LIKE OUT0 OCCURS 0,
IOUT LIKE OUT0 OCCURS 0 WITH HEADER LINE.
DATA: M type i.

select * from anla into corresponding fields of table iOUT.

loop at iout.
MODIFY iOUT.
endloop.

_________________

Мы делаем простые вещи - сложными!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 13:14 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Rednaxela написал:
Друзья,
случайно наткнулся на тестер в SE30.
смотрите, оказывается хвалёный рид тэйбл не так уж и быстр?
Или что то не так?


А причём здесь read, когда у Вас там ещё и modify есть. Так что Ваш пример не показывает чистую производительность read vs loop.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 13:16 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Пардон за дурацкий вопрос, но начем делать Read Table для каждой записи таблицы, какой в этом сакральный смысл?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 13:23 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, окт 16 2006, 07:31
Сообщения: 628
Откуда: СССР
Пол: Мужской
Konstantin Anikeev написал:
Пардон за дурацкий вопрос, но начем делать Read Table для каждой записи таблицы, какой в этом сакральный смысл?

ну как? :oops:
а какой тогда смысл в существовании оператора read table, если есть оператор loop where ?
честно говоря, я думал, что рид должен быть быстрее лупа...

вот результат без модифая:
Цитата:
read table 15 590 356 микросек.
loop 16 372 337 микросек.


т.е. read более чем на секунду быстрее... но это можно списать на помехи...

_________________

Мы делаем простые вещи - сложными!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 13:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
таблицы разные бывают


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 13:45 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 25 2008, 17:07
Сообщения: 144
Откуда: Казань
Пол: Мужской
CHECK быстрее if....endif.
loop where обойдёт всю таблицу, read table можно написать так, чтоб были считаны только нужные записи.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 14:04 
Специалист
Специалист

Зарегистрирован:
Чт, окт 26 2006, 16:44
Сообщения: 149
Откуда: Москва
READ TABLE умеет использовать преимущества хешированных и вручную сортированных таблиц, а loop where нет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 14:47 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
del


Последний раз редактировалось RA Чт, мар 04 2010, 14:56, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Чт, мар 04 2010, 14:54 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Если честно, какой смысл в обсуждении этой темы? Конечно, нет смысла использовать read table, как использует его Rednaxela в первом посте. Использование той или иной конструкции зависит от конкретной задачи.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: read table И loop - кто быстрее?
СообщениеДобавлено: Пт, мар 05 2010, 00:04 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Rednaxela написал:
а какой тогда смысл в существовании оператора read table, если есть оператор loop where ?
честно говоря, я думал, что рид должен быть быстрее лупа...

Он и есть быстрее, когда его правильно применяют. Попробуйте ваш пример с разными таблицами (SORTED, HASHED, STANDARD). Только, как уже правильно заметили сравнивать надо операторы 1:1, а не 1:N. Кроме того, прогонять надо минимум 3 раза и брать среднее арифметическое.

Ну и в дополнение к уже сказанному - READ умеет читать по номеру индекса. Например, если надо прочитать только первую запись, это очень легко и быстро сделать с помощью READ.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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