Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SORT ORDER BY & COUNT STOPKEY / 25 сообщений из 60, страница 1 из 3
30.05.2016, 15:45
    #39246307
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
Есть мнение, что первые 5000 строк результатов этих запросов не обязательно эквивалентны:
1:
Код: sql
1.
2.
3.
select *
	from all_objects
	order by object_name, object_type, owner, /*whatewer*/)

2:
Код: sql
1.
2.
3.
4.
5.
6.
select *
	from (
		select *
			from all_objects
			order by object_name, object_type, owner, /*whatewer*/)
	where rownum <= 5000


А вы что думаете?
...
Рейтинг: 0 / 0
30.05.2016, 16:37
    #39246351
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--А вы что думаете?Я думаю что если между выполнениями ты сделаешь alter session set nls_sort то сможешь для себя открыть дивный новый мир.
...
Рейтинг: 0 / 0
30.05.2016, 16:47
    #39246356
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
dbms_photoshop,

не не не, при прочих равных .
просто пацанчики на районе слух пустили, что COUNT STOPKEY может произойти до SORT ORDER BY.
если честно, я в это не верю. но всё-таки
...
Рейтинг: 0 / 0
30.05.2016, 16:50
    #39246357
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--,

Бред
...
Рейтинг: 0 / 0
30.05.2016, 16:57
    #39246361
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
еще варианты, пожалуйста
...
Рейтинг: 0 / 0
30.05.2016, 17:04
    #39246366
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--еще варианты
а документация по select... order by чем не угодила ?
...
Рейтинг: 0 / 0
30.05.2016, 17:09
    #39246371
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
123йй,

разве оттуда можно явно узнать ответ на мой вопрос?
...
Рейтинг: 0 / 0
30.05.2016, 17:16
    #39246376
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--dbms_photoshop,

не не не, при прочих равных .
просто пацанчики на районе слух пустили, что COUNT STOPKEY может произойти до SORT ORDER BY.
если честно, я в это не верю. но всё-такиа тест в подтверждение не прислали?
...
Рейтинг: 0 / 0
30.05.2016, 17:18
    #39246378
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
andreymx,

who needs tests, when there is a theory? ©
...
Рейтинг: 0 / 0
30.05.2016, 17:32
    #39246389
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--who needs tests, when there is a theory?
Ставлю на то, что эти теоретики поставили в условие rownum из внутреннего запроса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
30.05.2016, 17:40
    #39246394
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--еще варианты, пожалуйстаПри недетерминированной сортировке и side effects можно добиться разных результатов.
Под недетерминированной сортировкой понимается тот случай когда более одной строки с одинаковыми object_name, object_type, owner.
Например, секционированная таблица.
...
Рейтинг: 0 / 0
30.05.2016, 18:50
    #39246453
Теоретик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--Есть мнение, что первые 5000 строк результатов этих запросов не обязательно эквивалентны:
1:
Код: sql
1.
2.
3.
select *
	from all_objects
	order by object_name, object_type, owner, /*whatewer*/)

2:
Код: sql
1.
2.
3.
4.
5.
6.
select *
	from (
		select *
			from all_objects
			order by object_name, object_type, owner, /*whatewer*/)
	where rownum <= 5000


А вы что думаете?
Я думаю, что оба запроса нерабочие и возвращают одну и туже ошибку :-)
...
Рейтинг: 0 / 0
30.05.2016, 19:12
    #39246466
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
Теоретик,

это все понимают и вежливо делают вид, что не заметили
...
Рейтинг: 0 / 0
30.05.2016, 20:07
    #39246492
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
хорошо, а правильно ли будет переместить ORDER BY таким образом? :
1
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
with w as (
	select *
		from all_users
),
x as (
	select *
		from all_objects
),
y as (
	select x.object_name, x.object_type, x.owner,
			w.created
			/*, и другие колонки*/
		from w
			left join x
				on x.owner = w.username
			/* и куча других джоинов */),
z as ()
	select *
		from y
		order by case when :a = :b then y.created else null end
			/*, и прочие выражения, зависящие не (или не только) от y*/
)
select *
	from z
	where rownum <= 5000;

2
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
with w as (
	select *
		from all_users
		order by case when :a = :b then created else null end
),
x as (
	select *
		from all_objects
),
y as (
	select x.object_name, x.object_type, x.owner,
			w.created
			/*, и другие колонки*/
		from w
			left join x
				on x.owner = w.username
			/* и куча других джоинов */),
z as (
	select *
		from y
		order /*прочие выражения, зависящие не (или не только) от y*/
)
select *
	from z
	where rownum <= 5000;


Идея в том чтобы сделать сортировку по ALL_USERS.CREATED быстрее.
Или же сортировка во вложенных подзапросах не гарантируется, если это не TOP-N ?
...
Рейтинг: 0 / 0
30.05.2016, 20:09
    #39246494
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
Конечно же, камент должен быть такой:
Код: plsql
1.
2.
3.
...
/*, и прочие выражения, зависящие не (или не только) от w*/
...
...
Рейтинг: 0 / 0
30.05.2016, 20:23
    #39246498
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--,

В варианте 2 может исчезнуть сортировка по created. Читай про order by elimination
...
Рейтинг: 0 / 0
30.05.2016, 20:25
    #39246500
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--,

То есть даже order by elimination не при чем, просто если вторая сортировка не включает created первым, то тупо сортировка первая бесполезна
...
Рейтинг: 0 / 0
30.05.2016, 21:45
    #39246544
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
xtenderБред

Ну теорeтически не такой уж бред если результат inline view будет мaтериaлизирован и зaтем считан параллельно. Можно ли "убедить" оптимайзер на такой плaн это уже другой вопрос. Лично я в принципе не использую inline view с order by а предпочитаю аналитику.

SY.
...
Рейтинг: 0 / 0
30.05.2016, 22:42
    #39246574
xtender-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
SY,

Я говорил про авторпросто пацанчики на районе слух пустили, что COUNT STOPKEY может произойти до SORT ORDER BY.
...
Рейтинг: 0 / 0
31.05.2016, 01:40
    #39246629
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
SYесли результат inline view будет мaтериaлизирован и зaтем считан параллельно..не думаю, что у нас есть такая цель..
...
Рейтинг: 0 / 0
31.05.2016, 01:44
    #39246630
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
xtenderесли вторая сортировка не включает created первым, то тупо сортировка первая бесполезнатогда какой смысл в SORT ORDER BY по CREATED на вью в плане?
И тут даже не о смысле речь, а о самом факте его наличия.
...
Рейтинг: 0 / 0
31.05.2016, 02:48
    #39246635
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--тогда какой смысл в SORT ORDER BY по CREATED на вью в плане? CBO умеет его убирать , но не всегда (имхо существенно реже в последних версиях, в связи с многочисленными багами)
...
Рейтинг: 0 / 0
31.05.2016, 15:15
    #39247281
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
вобщем, у меня следующая проблема
есть запрос, который возвращает очень много строк (но следует учесть, что фетчатся из них только первые N, небольшое фиксированное число)
в этом запросе используется партиционированная таблица
и сортировка (в которой, собственно, фигурирует только та самая таблица), которая губит всю прелесть пертишенинга, поскольку из-за нетривиальности выражений сортировки (наличие CASE WHEN .. THEN NULL и проч) просматриваются все партиции вместо парочки тех, которые бы как раз дали те самые N строк..

что посоветуете?
...
Рейтинг: 0 / 0
31.05.2016, 15:20
    #39247285
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--просматриваются все партиции вместо парочки тех, которые бы как раз дали те самые N строк..
Код: plsql
1.
SELECT * FROM sales PARTITION (nov98) 
...
Рейтинг: 0 / 0
31.05.2016, 15:21
    #39247287
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SORT ORDER BY & COUNT STOPKEY
--Eugene--...

что посоветуете?
попить водички, подышать свежим воздухом и перестать использовать слова, смысла которых Вы не понимаете,
даже если те слова чудятся вам совершенно "красивыми".
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SORT ORDER BY & COUNT STOPKEY / 25 сообщений из 60, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]