#sql #oracle
#sql #Oracle
Вопрос:
При каких обстоятельствах запрос select не отображается в представлении V $ SQL?
Например, если я выполню это:
select /*findme*/ * from T ...
А затем сразу после этого запустите это:
select * from v$sql where sql_text like '%/*findme*/%';
При каких обстоятельствах я не получу возвращенных строк? И при таких обстоятельствах могу ли я принудительно записать информацию о запросе в V $ SQL?
Комментарии:
1. Вы работаете в кластере? Вы пытались выбрать из
gv$sql
?2. У вашего пользователя есть свой собственный объект V $ SQL
3. @MatthewMcPeak Новость для меня, но, видимо, да. Можете ли вы добавить в качестве ответа? Спасибо!
4. Вы уверены, что находитесь в кластере? Или вы просто попробовали
gv$sql
, и это сработало? Потому что это также может означать, что @MichaelPiankov догадался об этом.5. @MatthewMcPeak Это RAC. Хотя мне интересно узнать, как пользователь может иметь свой собственный объект V $ SQL тоже. Исследую это…
Ответ №1:
При каких обстоятельствах запрос select не отображается в представлении V $ SQL?
Одна ситуация связана с реальным кластером приложений (RAC). В таких средах V$SQL
будет содержать только кэш библиотеки текущего узла. Чтобы просмотреть кэш библиотеки на всех узлах, выберите из GV$SQL
.