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

Часовой пояс: 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 часа


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

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


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

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