Текущее время: Пн, июл 28 2025, 09:28

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: FOR ALL ENTRIES по сортированной таблице
СообщениеДобавлено: Сб, сен 04 2010, 16:19 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
__Gennady написал(а):
FOR ALL ENTRIES не зло при правильном использовании, особенно если почитать вышеназванные ноты.
При интерпретации он превращается либо в UNION либо в IN() либо в OR(.. and...) OR(.. and...)

Ну вот вы сами и описали его недостатки, ибо данные конструкции плохо оптимизируются СУБД.
Я всего лишь утверждаю, что если есть возможность построить оптимизированный запрос (исключения я уже описывал много выше), то использование FOR ALL ENTRIES абсолютно не оправдано, т.к. это неоптимизируемое обращение к СУБД.

__Gennady написал(а):
3. COLLECT для обычных (не сортированных или хеш-таблиц).

Я надысь наткнулся, оказывается САПа уже оптимизировала COLLECT для несортированных таблиц, правда с оговорками, что модификация таблицы производится только через COLLECT. Подробности не помню, см. HELP.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FOR ALL ENTRIES по сортированной таблице
СообщениеДобавлено: Сб, сен 04 2010, 16:28 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Parazit написал:
__Gennady написал(а):
FOR ALL ENTRIES не зло при правильном использовании, особенно если почитать вышеназванные ноты.
При интерпретации он превращается либо в UNION либо в IN() либо в OR(.. and...) OR(.. and...)

Ну вот вы сами и описали его недостатки, ибо данные конструкции плохо оптимизируются СУБД.
Я всего лишь утверждаю, что если есть возможность построить оптимизированный запрос (исключения я уже описывал много выше), то использование FOR ALL ENTRIES абсолютно не оправдано, т.к. это неоптимизируемое обращение к СУБД.

__Gennady написал(а):
3. COLLECT для обычных (не сортированных или хеш-таблиц).

Я надысь наткнулся, оказывается САПа уже оптимизировала COLLECT для несортированных таблиц, правда с оговорками, что модификация таблицы производится только через COLLECT. Подробности не помню, см. HELP.


1. Тот факт что запрос без for all entries лучше, чем с ним - слишком очевиден, чтобы его обсуждать.
Но иногда оказывается эффективнее разделить запрос на несколько.
Можно привести примеры, когда оптимизатор Oracle чудит, или промежуточная обработка оказывается более эффективной. Хороший вопрос что лучше - left outer join или дополнительный селект с for all entries? Хотя это уже не пример хорошо оптимизируемого запроса.
Я лишь хочу сказать, что for all entries неизбежность, да и в стандарте часто используется. Поэтому знать как это работает необходимо.

2. Да, про временный хеш-ключ я в курсе. Но по факту часто ловил чудовищно медленное выполнение collect, поэтому появился такой пункт в рекомендациях для команды разработчиков.


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

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


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

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


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

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