![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Oracle9. ORA-03113
k2 © (2005-10-11 08:11:00)Случайно столкнулась с такой проблемой:
Небольшой запрос выполняется, возвращает мелкое количество строк(до десятка), однако если его обернуть, причем с тем же полями без группировок или ещё каких изменений получаем ORA-03113.
исходный запрос:
select table1.field1 f1,table1.field2 f2,table2.field1 f3 from table1, table2 where [any_conditions]
обернутый:
select f1, f2, f3 from (select table1.field1 f1,table1.field2 f2,table2.field1 f3 from table1, table2 where [any_conditions])
ошибка возникает стабильно, на разных машинах и под разными пользователями (запрос один и тот же)
клиент toad, но проверила под sql*plus - то же самое.
Подскажите где и как можно поискать источник ошибки?
ANB (2005-10-11 11:39:00) [21]
> k2 © (11.10.05 11:31) [22]
- попробуй во вложенном запросе убрать хинт и вызов функций из пакетов. Затем добавляй обратно по одному, пока не сломается. Имхо - проблема в хранимках.
k2 (2005-10-11 11:31:00) [22]Sergey13 © (11.10.05 11:14) [17]
в смысле *.trc и алерт в принципе есть, нет записей об ошибках в этот момент времени, ещё поищем как админ освободиться
Val © (11.10.05 11:13) [16]
исходный запрос
SELECT /*+ index (bd_doc )*/
Call_Value_From_Dict.get_name_subdiv(bd_doc.subdivision_id) nw,
DECODE (bd_type.bd_dct_id,50256, 1,50063, 2,50255, 3,4) tn,
nvl(bd_new.jan_quant*fact_pr.price, 0) jan_summ
FROM BD_DOCHEAD bd_doc,
BD_DOCTYPE bd_type,
BD_DOC_STRINGS bd_doc_st,
BD_DOC_STRINGS_EXTEND_NEW bd_new,
(SELECT NVL(jan_fact_price,0) price, prass_id,YEAR FROM BD_DOC_STRINGS_FACT_PRICE WHERE YEAR=2005) fact_pr
WHERE bd_doc.bd_dh_id = bd_doc_st.bd_dh_bd_dh_id
AND bd_doc.company_id = 69460
AND bd_new.YEAR_OF_USE = 2005
AND bd_type.bd_dct_id = bd_doc.document_type_id
AND bd_doc_st.PRASS_ID= fact_pr.PRASS_ID(+)
AND bd_doc_st.resource_mng_id IN (
SELECT ID
FROM MTM_RESOURCE_MANAGERS
WHERE manager_id IN (SELECT * FROM TABLE (CAST (Logistic_Units.group_res_managers('60204',',') AS boss_cxp.vtable))))
AND bd_doc.subdivision_id IN (4095)
AND bd_doc_st.bd_doc_st_id = bd_new.f_bd_doc_st_id
select nw, tn, jan_summ
from (
SELECT /*+ index (bd_doc )*/
Call_Value_From_Dict.get_name_subdiv(bd_doc.subdivision_id) nw,
DECODE (bd_type.bd_dct_id,50256, 1,50063, 2,50255, 3,4) tn,
nvl(bd_new.jan_quant*fact_pr.price, 0) jan_summ
FROM BD_DOCHEAD bd_doc,
BD_DOCTYPE bd_type,
BD_DOC_STRINGS bd_doc_st,
BD_DOC_STRINGS_EXTEND_NEW bd_new,
(SELECT NVL(jan_fact_price,0) price, prass_id,YEAR FROM BD_DOC_STRINGS_FACT_PRICE WHERE YEAR=2005) fact_pr
WHERE bd_doc.bd_dh_id = bd_doc_st.bd_dh_bd_dh_id
AND bd_doc.company_id = 69460
AND bd_new.YEAR_OF_USE = 2005
AND bd_type.bd_dct_id = bd_doc.document_type_id
AND bd_doc_st.PRASS_ID= fact_pr.PRASS_ID(+)
AND bd_doc_st.resource_mng_id IN (
SELECT ID
FROM MTM_RESOURCE_MANAGERS
WHERE manager_id IN (SELECT * FROM TABLE (CAST (Logistic_Units.group_res_managers('60204',',') AS boss_cxp.vtable))))
AND bd_doc.subdivision_id IN (4095)
AND bd_doc_st.bd_doc_st_id = bd_new.f_bd_doc_st_id)
коегде загадочности и непостижимости есть, сильно не ругайтесь-так надо :о)
Sergey13 (2005-10-11 11:31:00) [23]2[19] DenK_vrtz © (11.10.05 11:25)
Я с 9 не работал, но что значит "нет по умолчанию"? Их и в 8 нет, за исключением 1 с именем SYSTEM в одноименном ТП. Все остальные создается отдельно.
ANB (2005-10-11 11:28:00) [24]
> DenK_vrtz © (11.10.05 11:25) [19]
- ну так я про него и говорю. Для упрощения. Размер же у него менять можно ?
DenK_vrtz (2005-10-11 11:25:00) [25]>ANB © (11.10.05 11:18) [18]
> - а куды они делись ?
они никуда не делись, только их нет по умолчанию. Если хочешь можешь сделать(добавить, настроить).
В 9-ке специальное табличное пространство этим занимается.
ANB (2005-10-11 11:18:00) [26]
> DenK_vrtz © (11.10.05 10:59) [13]
> >ANB © (11.10.05 10:56) [12]
>
> В девятке по умолчанию нет роллбэк сегментов.
- а куды они делись ?
ЗЫ. Эту ошибку я на девятке и ловил. На 8 еще ни разу не нарывался.
Sergey13 (2005-10-11 11:14:00) [27]2[15] k2 © (11.10.05 11:06)
>пусто, и в алерте и в трейсах
Везде искала? Они вроде могут в разных местах формироваться, в зависимости от причины возникновения. Посмотри в параметрах оракла параметры, где значением является дисковый путь и название похоже на dump, trace и т.п.
Или просто по дискам поиском .trc посмотреть. ИМХО, должны быть.
Val (2005-10-11 11:13:00) [28]Было у меня как-то из-за синтаксиса, помню точно. Реальный полный запрос пожалуйста. Если в пл блоке/процедуре, то весь пл блок. Если хотите , в почту.
k2 (2005-10-11 11:06:00) [29]Sergey13 © (11.10.05 10:47) [9]
пусто, и в алерте и в трейсах
DenK_vrtz © (11.10.05 10:53) [10]
да
Курдль © (11.10.05 10:55) [11]
может, а почему тогда в исходном запросе это скушивается?
Reindeer Moss Eater © (11.10.05 11:00) [14]
сервер пропатчен
Reindeer Moss Eater (2005-10-11 11:00:00) [30]Возникает внутренняя ошибка приводящая к тому, что рвется соединение.
В синтаксисе запроса искать ошибку бесполезно.
Патчить сервер.
Если не помогает - писать в техсапорт.
DenK_vrtz (2005-10-11 10:59:00) [31]>ANB © (11.10.05 10:56) [12]
В девятке по умолчанию нет роллбэк сегментов.
ANB (2005-10-11 10:56:00) [32]
> k2 © (11.10.05 10:46) [8]
- нарывался, но только один раз. Попробуй увеличить роллбэк сегмент и время его жизни. Полазь вообще по настройкам оракла - нехорошая ошибка.
Курдль (2005-10-11 10:55:00) [33]А в [any_conditions] не может быть длинного
... and X in (A, B, C, ... Z)?
DenK_vrtz (2005-10-11 10:53:00) [34]>k2 ©
Клиент и сервер одной версии?
Sergey13 (2005-10-11 10:47:00) [35]2[6] k2 © (11.10.05 10:30)
>в трейсах исходного запроса
Не тут. При ошибках системы на сервереформируются файлы .trc там где Alert.log лежит (или рядом где то). Возможно там что-то есть. Можно и в алерте посмотреть - нет ли чего подозрительного.
k2 (2005-10-11 10:46:00) [36]to Desdechado © (11.10.05 10:40) [7]
обрыв связи возникает стабильно при одном и том же запросе и не возникает при других, в данных условиях каким образом искать и в какую сторону смотреть?
Desdechado (2005-10-11 10:40:00) [37]это обрыв связи
ищи причину
k2 (2005-10-11 10:30:00) [38]Sergey13 © (11.10.05 09:34) [2]
в трейсах исходного запроса мне кажется ничего страшного нет:
recursive calls 6;consistent gets 848;execute count 8
план запроса тоже как бы не жуткий, cost=171 (choose)
если нужно могу полный запостить
k2 (2005-10-11 09:41:00) [39]я читала што это за ошибка :) я не могу понять где искать :(
k2 (2005-10-11 09:37:00) [40]to Reindeer Moss Eater © (11.10.05 09:27) [1]
но ведь в исходном запросе эти условия срабатывают, блок where во втором случае абсолютно такой же