Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Oracle 10.2.0.4
есть кверя с несколькими вложеними вюшками
верхний уровень чё-то типа такого
select 
 ...
sum(),
Sum(),
Grouping(), ...
....
group by grouping sets ((f1,f2), 
                        (), 
                        (F3,f4,f5,f6),
                        (f4,f5,f6),
                        (f5,f6),
                        (F7,f8,f9,f10),  
                        (f8,f9,f10))


Время от времени кверя крешает No more data read from socket
Если уменшить количество grouping sets до трёх то работает стабильно.
В плане есть hash group by rollup.
Я так понимаю оптимизатор сходит с ума из-за большого количества сетов.
Как ту кверю стабилизовать?
СПС
10 окт 12, 10:32    [13294089]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Stepan_mk,

материализации нет в подзапросах?
10 окт 12, 10:38    [13294120]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
Stepan_mk
Oracle 10.2.0.4
есть кверя с несколькими вложеними вюшками
верхний уровень чё-то типа такого
select 
 ...
sum(),
Sum(),
Grouping(), ...
....
group by grouping sets ((f1,f2), 
                        (), 
                        (F3,f4,f5,f6),
                        (f4,f5,f6),
                        (f5,f6),
                        (F7,f8,f9,f10),  
                        (f8,f9,f10))


Время от времени кверя крешает No more data read from socket
Если уменшить количество grouping sets до трёх то работает стабильно.
В плане есть hash group by rollup.
Я так понимаю оптимизатор сходит с ума из-за большого количества сетов.
Как ту кверю стабилизовать?
СПС


а в каком клиенте вылетает? в плюсе получается воспроизвести?
10 окт 12, 10:42    [13294138]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
env,

11.2.0.2 x64
забавно:
+
SQL Monitoring Report

SQL Text
with da as (select /*+ materialize*/ 1 A from dual) ,db as (select /*+ inline*/ 1 B from dual) select grouping(a),a ,grouping(b),b from da,db group by grouping sets(a,b,(a,b),()) 


Global Information
Status : DONE (ERROR)
Instance ID : 1
Session : ENV (123:6079)
SQL ID : gnyzr4668ct70
SQL Execution ID : 16777216
Execution Started : 10/10/2012 10:39:03
First Refresh Time : 10/10/2012 10:39:13
Last Refresh Time : 10/10/2012 10:41:19
Duration : 136s
Module/Action : SQL Developer/-
Program : SQL Developer

Global Stats
Elapsed Time(s), Cpu Time(s), IO Waits(s), Other Waits(s), Buffer Gets, Read Reqs, Read Bytes, Write Reqs, Write Bytes
136, 32, 0.33, 103, 26, 26571, 15GB, 2, 32768

SQL Plan Monitoring Details (Plan Hash Value=3130311802)
IdOperationName Rows (Estim)Cost Time Active(s) Start ActiveExecs Rows (Actual) Read Reqs Read Bytes Mem (Max) Activity (%) Activity Detail (# samples)
0SELECT STATEMENT
1. TEMP TABLE TRANSFORMATION
2.. LOAD AS SELECT1+1011275K
3... FAST DUAL121+1011
4.. MULTI-TABLE INSERT138+0101558915GB100.00 log buffer space (2) Cpu (29) control file sequential read (7) log file sequential read (100)
5... TEMP TABLE TRANSFORMATION1
6.... MULTI-TABLE INSERT1+1010
7..... SORT GROUP BY NOSORT141+1011
8...... MERGE JOIN CARTESIAN141+1011
9....... TABLE ACCESS FULLSYS_TEMP_0FD9D680B_B49956EF121+1011
10....... BUFFER SORT121+10112048
11........ FAST DUAL121+1011
12..... DIRECT LOAD INTOSYS_TEMP_0FD9D680E_B49956EF1+1011
13.... VIEW241
14..... VIEW241
15...... UNION-ALL1
16....... TABLE ACCESS FULLSYS_TEMP_0FD9D680E_B49956EF12127+1010
17....... TABLE ACCESS FULLSYS_TEMP_0FD9D680E_B49956EF12
18... DIRECT LOAD INTOSYS_TEMP_0FD9D680C_B49956EF
19... DIRECT LOAD INTOSYS_TEMP_0FD9D680D_B49956EF
20.. LOAD AS SELECT
21... SORT GROUP BY ROLLUP13
22.... TABLE ACCESS FULLSYS_TEMP_0FD9D680C_B49956EF12
23.. VIEW24
24... VIEW24
25.... UNION-ALL
26..... TABLE ACCESS FULLSYS_TEMP_0FD9D680C_B49956EF12
27..... TABLE ACCESS FULLSYS_TEMP_0FD9D680D_B49956EF12
10 окт 12, 10:56    [13294221]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
env,
да уж.... а при попытке выполнить ORA-03113: end-of-file on communication channel
10 окт 12, 11:06    [13294287]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
comphead,

Прикол в том, что это репорт по выполнению. Остановлено принудительно.
А вот повторный запуск уже вызвал 03113
10 окт 12, 11:12    [13294344]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
comphead,

но 15Gb прочитанных на этапе MULTI-TABLE INSERT с основным ожиданием log file sequential read немножко, хм, удивляют
10 окт 12, 11:14    [13294353]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Помогло вот что
/*+ OPT_PARAM('_gby_hash_aggregation_enabled' 'false') */
10 окт 12, 11:34    [13294493]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Уже не впервой HASH GROUP BY заставляет попотеть :(
10 окт 12, 11:35    [13294501]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Кажется поспешил радоватся.
Просто несколько раз подряд кверя отработала.
Далее опять падает :(
10 окт 12, 11:37    [13294520]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
env
Stepan_mk,

материализации нет в подзапросах?

Если вопрос о

multi-table insert
DIRECT LOAD INTO

то да такое есть
10 окт 12, 11:42    [13294559]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
comphead
а в каком клиенте вылетает? в плюсе получается воспроизвести?

SQL Developer и java апликация
в sqlplus получили
ORA-03113: end-of-file on communication channel
10 окт 12, 11:48    [13294627]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Stepan_mk,

проверяйте вьюхи на предмет + materialize
10 окт 12, 12:06    [13294756]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
В плане те вюхи превращаются в temp таблички.
Кстати на другом точно таком же серваке (клон основного) кверя работает на ура.
10 окт 12, 12:13    [13294833]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Stepan_mk,

с таким же планом выполнения?
10 окт 12, 12:16    [13294852]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Да с точно таким планом.

Сделал
alter session set optimizer_features_enable = '9.2.0'
и кверя заработала.
Но алтерить сессию мне не канает
пробую хинт вместо альтера
/*+ optimizer_features_enable( '9.2.0' ) */

но он не помогает
10 окт 12, 12:26    [13294949]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
xtender
Member

Откуда: Мск
Сообщений: 5704
Stepan_mk,

материализуйте основную выборку перед группировкой
10 окт 12, 12:35    [13295032]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
env,

забавно еще то, что если сделать два /*+ inline */ результат будет один, а
при двух /*+ materialize */ другой.
10 окт 12, 12:42    [13295096]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
странно что все забыли
+
orawish
Mможно спросить в какой (уже) версии сервера пару констант из дуала можно
будет выбрать без косяков, навроде:

select grouping(a),a ,grouping(b),b
from ( select 1 A ,1 B from dual
) group by grouping sets((a,b),a,b,());
10 окт 12, 12:46    [13295128]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Vint,

да, баян.
10 окт 12, 12:50    [13295170]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
orawish,
ну я на это и намекал. просто не нашел сразу твою тему)
10 окт 12, 12:52    [13295200]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Vint
orawish,
ну я на это и намекал. просто не нашел сразу твою тему)

вот тут 7620473 чуть больше
10 окт 12, 12:56    [13295244]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
xtender
Stepan_mk,

материализуйте основную выборку перед группировкой

Поставил /*+ materialize */ та же фигня.
Но как я понимаю оно у меня и так материализуется.
10 окт 12, 13:00    [13295283]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
решение с понижением оптимизатора мне вообще то подходит.
Но почему хинт не работает
/*+ optimizer_features_enable( '9.2.0' ) */
Или а 10-ке такого хинта нету?
10 окт 12, 13:19    [13295487]     Ответить | Цитировать Сообщить модератору
 Re: Grouping sets креш  [new]
Stepan_mk
Member

Откуда: Україна
Сообщений: 1299
Переписал кверю через CUBE ... HAVING
Падает с той же опиПкой, если немного хевингов убрать то работает.

Получается что фикс alter session помогает ...
10 окт 12, 14:33    [13296208]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить