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

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


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

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


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

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