Что делает внутренний запрос ORACLE из cdef$

uusseerr
Дата: 29.05.2006 13:37:43
Добрый день. Помогите, пожалйуста, с вопросом:
Вот такой запрос, висит в топ10 по elapsed_time в v$sql. Что этот запрос делает и при каких ситуация он возникает?
В системе активно используются функциональные индексы и таблици организованные по индексу.
SELECT C.NAME,
    u.NAME 
FROM con$ C,
    cdef$ cd,
    user$ u 
WHERE C.con# = cd.con# 
    AND cd.enabled = :1 
    AND C.owner# = u.user#
Количество выполнений (и чуть-чуть меньшее количество обработанных строк) тоже в верхней десятке запросов...
dmidek
Дата: 29.05.2006 13:49:34
Запрос выдает все включенные констрейнты по всем схемам.
Когда он возникает ?. Смотрите в сторону GUI...
eclipse_user
Дата: 29.05.2006 14:02:49
То есть GUI? Этот запрос не приходит с клиентской части, а выполняется при каком-то dml операторе.
Вот и ходелось бы узнать при каких ситуация такой запрос может появляться в топ10..., массоввые insert, update, delete? может функциональные индексы? может влияют таблицы организованные по индексу?
andrey_anonymous
Дата: 29.05.2006 14:11:58
eclipse_user
Вот и ходелось бы узнать при каких ситуация такой запрос может появляться в топ10..., массоввые insert, update, delete? может функциональные индексы? может влияют таблицы организованные по индексу?

Что мешает снять трассу с прилжения и посмотреть?
Судя по количеству exec этот запрос должен быть практически в любой трассе.
Сами все и увидите...
uusseerr
Дата: 29.05.2006 14:17:04
2 andrey_anonymous
Трассировка не ответит на вопрос "а зачем ораклу это надо?" :)
Прото думал может кто сталкивался раньше с таким, поделяться...
andrey_anonymous
Дата: 29.05.2006 14:21:43
uusseerr
Трассировка не ответит на вопрос "а зачем ораклу это надо?"

Вы, кажется, спрашивали "что делает и когда возникает"?
На первый вопрос Вам уже ответили, на второй Вы легко можете получить ответ самостоятельно.
Если Вам больше нравится ждать у моря погоды - дело, конечно, Ваше.
Может, кто и сталкивался.
Может, даже не поленился разобраится.
Может, даже не поленится написать.
Elic
Дата: 29.05.2006 14:26:12
Failed constraint name lookup (c) Jonathan Lewis
eclipse_user
Дата: 29.05.2006 14:42:10
2andrey_anonymous
Извините, если мои ответы показались Вам грубыми или "ленивыми", наврно просто не хватает опыта общения в конференциях.
Спасибо за подсказку про трассировку, так я и сделаю, просто мысли уже пошли дальше и мне стало интересно, что например будет означать этот запрос например в таком контексте
PARSING IN CURSOR #1  insert into T() values ()
PARSE #1
EXEC #1
PARSING IN CURSOR #2  SELECT C.NAME,
PARSE #2
EXEC #2
то есть для чего оракл может делать такую выборку... но все это гадание...
Так что будет правильнее поступить как Вы сказали, уточнить ситуацию, когда возникает этот запрос, а потом уже дальше общаться...

Спасибо за стимул :)
dmidek
Дата: 29.05.2006 14:44:32
Я так понял, что Вы по ссылке Elic еще не ходили ...
uusseerr
Дата: 29.05.2006 14:53:06
Очень долго сочинял ответ на апредыдущий пост :), прочитать не успел.
2Elic - огромное спасибо!
был быстро найден очень похожий кусок кода:
  insert into T_X_CUR_DOC_TO_RECALC(day_date,doc_type,shop_id) values (trunc(v_doc_date),v_doc_type,v_shop_id);
  commit;
  exception when DUP_VAL_ON_INDEX then
    null;
в котором DUP_VAL_ON_INDEX появлялся в 99,(9)%.
Спасибо всем за ответы. Тему можно считать исчерпанной.