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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Оптимальное селектирование из ДБ "с конца"
СообщениеДобавлено: Пн, мар 30 2009, 18:59 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 10 2008, 11:30
Сообщения: 95
Подскажите пожалуйста, как лучше всего сделать SELECT из ДБ таблицы, с ограничением на кол-во строк, но так, чтобы эти строки выбирались по ключу с "конца" таблицы. Что-то вроде:
SELECT ... FROM ... INTO ... UP TO max ROWS WHERE ... ORDER BY key_fields DESCENDING.
Почему-то мне кажется, что ORDER BY не очень хорошая штука в смысле производительности, т.к. таблица очень большая, а выборка идет в диалоге. Есть ли более оптимальные решения? (или мне не правильно кажется ? :).
Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимальное селектирование из ДБ "с конца"
СообщениеДобавлено: Пн, мар 30 2009, 20:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Если есть индекс на поля, по которым идет ORDER BY, то все не иак печально ;)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Оптимальное селектирование из ДБ "с конца"
СообщениеДобавлено: Вт, мар 31 2009, 00:36 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Удав, зачем вы так плохо думаете о реляционных СУБД? :)

Самое печальное, что может произойти из-за использования ORDER BY - это сортировка результирующего набора данных SELECT'а на стороне сервера БД.
И произойдет это только в том в случае, если поля, по которым задан ORDER, не входят в индекс, по которому данные были извлечены из БД.

jaroslav_iv, если сомневаетесь какие поля нужны в индексе( полей в WHERE много ) - лучше делать на основании ORDER.
Т.к. для полей в WHERE, не входящих в такой индекс, добавится всего-лишь TABLE ACCESS BY INDEX ROWID.

Ну а если результирующее кол-во записей невелико - то на их кол-во в БД, ровно как и на то, что я написал выше, можно смело не обращать внимания.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Оптимальное селектирование из ДБ "с конца"
СообщениеДобавлено: Вт, мар 31 2009, 08:26 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, сен 10 2008, 11:30
Сообщения: 95
Спасибо, ну чтож оставлю ORDER BY, если все не так плохо. Полей в WHERE действительно много, но в ORDER BY только одно.


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

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


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

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


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

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