Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Параллельные запросы / 4 сообщений из 4, страница 1 из 1
06.09.2016, 09:53
    #39304226
Kamael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параллельные запросы
Помогите прояснить следующее:
Имеется две трассировки 10053, уровень 12, БД 11.2.0.4

В первой есть такое:

***************************************
PARAMETERS USED BY THE OPTIMIZER
********************************
*************************************
PARAMETERS WITH ALTERED VALUES
******************************
Compilation Environment Dump
------------------------
parallel_autodop = 1


В второй есть такое:

PARAMETERS USED BY THE OPTIMIZER
********************************
*************************************
PARAMETERS WITH ALTERED VALUES
******************************
parallel_hinted = serial


Запросы одинаковые, вида: запросX union запросY union запросQ и т.д
с одной лишь разницей, что во втором случае два запроса(допустим запросF и запросH) имеют хинт /*+ noparallel*/.

В первом случае имеем «параллельный» во втором «последовательный» план.

Вопрос:
1. Должен ли оптимизатор выполнить часть запроса в параллели, а часть последовательно если где-то в запросах/подзапросах есть хинт /*+ noparallel*/?
2. Что это за параметры: parallel_hinted и parallel_autodop?
...
Рейтинг: 0 / 0
06.09.2016, 14:38
    #39304451
usolcew
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параллельные запросы
Kamael,

>> 1. Должен ли оптимизатор выполнить часть запроса в параллели, а часть последовательно если где-то в запросах/подзапросах есть хинт /*+ noparallel*/?

нет, хинт /*+ noparallel*/ в любой части запроса обычно отключает параллельное выполнение на уровне всего запроса, и вы видите в трейсе изменение параметра для всего запроса:

Код: plsql
1.
2.
3.
4.
*************************************
PARAMETERS WITH ALTERED VALUES
******************************
parallel_hinted = serial



, который собственно и отражает степень хинтованности запроса в части параллельного выполнения

параметр parallel_autodop имхо логически (1/0) отражает использование autodop в запросе, смотрите секцию

Код: plsql
1.
2.
3.
**************************
Automatic degree of parallelism (AUTODOP)
**************************
...
Рейтинг: 0 / 0
06.09.2016, 14:47
    #39304462
Kamael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параллельные запросы
usolcewKamael,

>> 1. Должен ли оптимизатор выполнить часть запроса в параллели, а часть последовательно если где-то в запросах/подзапросах есть хинт /*+ noparallel*/?

нет, хинт /*+ noparallel*/ в любой части запроса обычно отключает параллельное выполнение на уровне всего запроса, и вы видите в трейсе изменение параметра для всего запроса:

Код: plsql
1.
2.
3.
4.
*************************************
PARAMETERS WITH ALTERED VALUES
******************************
parallel_hinted = serial



, который собственно и отражает степень хинтованности запроса в части параллельного выполнения

параметр parallel_autodop имхо логически (1/0) отражает использование autodop в запросе, смотрите секцию

Код: plsql
1.
2.
3.
**************************
Automatic degree of parallelism (AUTODOP)
**************************


Да, всё оно так, и в секции Automatic degree of parallelism (AUTODOP) указан disable.
Это поведение где-то описано, или по крупицам искать/тестировать?

Вот ещё вопрос про параллеьность, кусок трейса _px_trace:
Код: plaintext
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Parallelism disabled at runtime because forced serial at compilation time
qerpxStart                                                     [   20630/    60]
        rwsrid:40 pxid:3 qbas:67934:err:0
        START no parallel command type 
qertqoStart                                                    [   20630/     0]
        
            kxfqd     : 0x1661f53e38
            kxfqdtqi  : 1           
            kxfqdcc   : 0x14       TQ: from slave set 1 to QC
            kxfqdpty  : 4           
            kxfqdsmp  : 90           number of samples
            kxfqdflg  : 0x5000000 
                        /KXFQDF_FASTENQ/KXFQDF_PBIN
            kxfqdstart: 0            partitioning column offset
            kxfqdfmt  :              TQ format
              kxfqfnco  : 5            number of TQ columns
              kxfqfnky  : 0            number of key columns
              kxfqfnpcol: 0            number of partitioning columns
              TQ column        kxfqcbfl   kxfqcdty   kxfqcflg   kxfqcplen 
              kxfqfcol[   0]:  4          23         0x0          4         
              kxfqfcol[   1]:  0          23         0x80         0         
              kxfqfcol[   2]:  1          23         0x0          1         
              kxfqfcol[   3]:  96         23         0x0          96        
              kxfqfcol[   4]:  0          23         0x0          0         
klcliti                                                        [   20630/     0]
        tobjn:-39858490, tobjv:1
qertqiStart                                                    [   20630/     0]
        dfo=0 passthru
qertqoStart                                                    [   20630/     0]
        
            kxfqd     : 0x1661f546c0
            kxfqdtqi  : 0           
            kxfqdcc   : 0x21       TQ: from slave set 2 to slave set 1
            kxfqdpty  : 2           
            kxfqdsmp  : 90           number of samples
            kxfqdflg  : 0x21000080
                        /KXFQDFPAGG/KXFQDF_FASTENQ
            kxfqdstart: 0            partitioning column offset
            kxfqdfmt  :              TQ format
              kxfqfnco  : 3            number of TQ columns
              kxfqfnky  : 2            number of key columns
              kxfqfnpcol: 0            number of partitioning columns
              TQ column        kxfqcbfl   kxfqcdty   kxfqcflg   kxfqcplen 
              kxfqfcol[   0]:  4000       1          0x0          4000      
              kxfqfcol[   1]:  16         1          0x200        16        
              kxfqfcol[   2]:  14         209        0x0          14        
kxfrfir                                                        [   20630/     0]

Это можно как то перевести в читаемый вид?
...
Рейтинг: 0 / 0
06.12.2016, 15:17
    #39361284
Kamael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параллельные запросы
Кому интересно, по моей проблеме зарегистрировали баг
Bug 25202147 : SPORADICALLY PARALLEL QUERIES GETS DOWNGRADED TO SERIAL
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Параллельные запросы / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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