powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / иерархический запрос
9 сообщений из 9, страница 1 из 1
иерархический запрос
    #32064609
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Расскажите какие преимущества от использования иерархических запросов. И простейший примерчик, если не трудно, где эти преимущества проявляются в сравнении с обычным запросом.
...
Рейтинг: 0 / 0
иерархический запрос
    #32064619
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю не правильно поставлен вопрос. Некорекктно говорить "где эти преимущества проявляются в сравнении с обычным запросом.". Иерархический запрос выполняет конкретную задачу, также как выполняет определённую задачу фраза group by, having. Но если в запросе не используются эти фразы - не значит что у него есть недостатки.

Следующий пример показывает использование иерархического запроса и LEVEL:


LEVEL Examples The following statement returns all employees in hierarchical
order. The root row is defined to be the employee whose job is ’PRESIDENT’. The
child rows of a parent row are defined to be those who have the employee number
of the parent row as their manager number.
SELECT LPAD(’ ’,2*(LEVEL-1)) || ename org_chart,
empno, mgr, job
FROM emp
START WITH job = ’PRESIDENT’
CONNECT BY PRIOR empno = mgr;
ORG_CHART EMPNO MGR JOB
------------ ---------- ---------- ---------
KING 7839 PRESIDENT
JONES 7566 7839 MANAGER
SCOTT 7788 7566 ANALYST
ADAMS 7876 7788 CLERK
FORD 7902 7566 ANALYST
...
Рейтинг: 0 / 0
иерархический запрос
    #32064723
none
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, фашка, которая понтравилась в использовании иерархических запросов: если пользователь хочет построить зацикленное дерево, то Оракл не даст, выдав исключение при иерархическом запросе. Полезно.
...
Рейтинг: 0 / 0
иерархический запрос
    #32064803
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И фишка... Хочу отсортировать по какому-либо полю в текущем уровне (LEVEL), без использования рекурсивных процедур создания списка?
...
Рейтинг: 0 / 0
иерархический запрос
    #32064820
Java™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго вам времени суток!
Я тут неданво как раз столкнулся с этим.... CONNECT BY вешь хорошая и полезная, но вот при большизх таблицах уж очень она медленно рабьотает.... По сему я написал всгео два тригера и пару методов, которые отвечают за повдеение веток и всего прочего, если будет интересно могу привести их исходники
...
Рейтинг: 0 / 0
иерархический запрос
    #32064871
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Я тут неданво как раз столкнулся с этим.... CONNECT BY вешь хорошая и полезная, но вот при большизх таблицах уж очень она медленно рабьотает.... "

Я надеюсь ты индексы не забыл создать?
...
Рейтинг: 0 / 0
иерархический запрос
    #32064880
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Java™
>Я тут неданво как раз столкнулся с этим.... CONNECT BY
>вешь хорошая и полезная, но вот при большизх таблицах
>уж очень она медленно рабьотает....
И это нормально, ИМХО, построить дерево на здоровой таблице - весчь не простая. Для ускорения, если нужно дерево не на всю таблицу, а только на ее часть, я обычно делаю
select * from (select * from table where....)
start...
connect...
Т.е. строю дерево на конечном наборе а не на всей таблице. Наверное (для многих) я открыл Америку и изобрел велосипед, но когда-то давно мне это показалось открытием, настолько велик был скачок производительности? 8-)
...
Рейтинг: 0 / 0
иерархический запрос
    #32064943
Java™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексы нет, не забыл конефно....
По понимаете у меня в базе больше 3 мил. записей....а алгоритм, по которому работает CONNECT BY как класс не может быть быстрым и не какие индексы не помогуть :(....

2Серега
У меня дерево например состоящие из 20.000 записей стоилось порядка 3 минут.... после того как я отказался от этого у меня оно стоиться за 16,5 секунд :) и это с учетом вывода на экран :)
...
Рейтинг: 0 / 0
иерархический запрос
    #32065017
mms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mms
Гость
to Java
Давай кидай исходники, а можно и просто общую идею словами представить как это у тебя сделано. Интересно глянуть, думаю не мне одному.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / иерархический запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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