Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Отобрать первые 100 записей  [new]
asjdfahsf
Guest
Подскажите пожалуйста как оптимально отобрать из большой таблицы самые старые 100 записей дата вставки имеется.
То есть нужно
select * from
(select * from t order by dateins desc)
where rownum<100
Но не уверен что это оптимальный подход (по быстродействию)
11 янв 13, 09:33    [13751669]     Ответить | Цитировать Сообщить модератору
 Re: Отобрать первые 100 записей  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
asjdfahsf,

по идее, правильнее будет использовать ROW_NUMBER()
select *
	from (
		select row_number() over (order by id desc) as rn,
				t.*
			from trx t)
	where rn <= 100
11 янв 13, 09:44    [13751709]     Ответить | Цитировать Сообщить модератору
 Re: Отобрать первые 100 записей  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
ой, опечатался
select *
	from (
		select row_number() over (order by dateins desc) as rn,
				t.*
			from t)
	where rn <= 100
11 янв 13, 09:45    [13751715]     Ответить | Цитировать Сообщить модератору
 Re: Отобрать первые 100 записей  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Если индекс по dateins есть и он подхватывается (INDEX FULL SCAN DESCENDING), то с быстродействием будет нормально.
11 янв 13, 09:46    [13751717]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить