powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / План запроса рекурсивного запроса
4 сообщений из 4, страница 1 из 1
План запроса рекурсивного запроса
    #40045619
Hubertanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Есть рекурсивный запрос
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
WITH CTE (NAME, ID, PARENT_ID, POINT_ID, POINT_NAME) AS (
    SELECT T.NAME, T.ID, T.PARENT_ID, T.ID, T.NAME
    FROM TEST T
    WHERE KIND IN (333, 111, 222)
    UNION ALL
    SELECT T1.NAME, T1.ID, T1.PARENT_ID, CTE.POINT_ID, CTE.POINT_NAME
    FROM TEST T1
             INNER JOIN CTE ON T1.PARENT_ID = CTE.ID
    )
SELECT * FROM CTE;


Смотрю план этого запроса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
|-----------------------------------------------------------------------------------------------------------------|
| Id| Operation                                 | Name            | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
|-----------------------------------------------------------------------------------------------------------------|
| 0 | SELECT STATEMENT                          |                 |    88G|   164T|       |   239M  (1)| 02:36:15 |
| 1 |  VIEW                                     |                 |    88G|   164T|       |   239M  (1)| 02:36:15 |
| 2 |   UNION ALL (RECURSIVE WITH) BREADTH FIRST|                 |       |       |       |            |          |
| 3 |    INLIST ITERATOR                        |                 |       |       |       |            |          |
| 4 |     TABLE ACCESS BY INDEX ROWID BATCHED   | TEST            |    93 | 96813 |       |     6   (0)| 00:00:01 |
|*5 |      INDEX RANGE SCAN                     | TEST_KIND_INDEX |    27 |       |       |     3   (0)| 00:00:01 |
|*6 |    HASH JOIN                              |                 |    88G|   165T|  6816K|   239M  (1)| 02:36:15 |
| 7 |     BUFFER SORT (REUSE)                   |                 |       |       |       |            |          |
| 8 |      TABLE ACCESS FULL                    | TEST            |  6708 |  6734K|       |    68   (0)| 00:00:01 |
| 9 |     RECURSIVE WITH PUMP                   |                 |       |       |       |            |          |
|-----------------------------------------------------------------------------------------------------------------|

Индексы по полям ID, PARENT_ID, KIND созданы. Почему такая высокая стоимость и какие есть варианты исправления?
Заранее спасибо!
...
Рейтинг: 0 / 0
План запроса рекурсивного запроса
    #40045623
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
План запроса рекурсивного запроса
    #40045647
Hubertanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
План запроса рекурсивного запроса
    #40045712
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Если купить Oracle Database Personal Edition с техподдержкой, то и доступ появится!
А для разработчика Personal Edition - это то, что нужно!

Не думали о таком нетрадиционном варианте?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / План запроса рекурсивного запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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