Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1

ТЕМА:

Обнуление вьюхи v$sqltext в Oracle 12 года 9 мес. назад #2585

Добрый день. Как обнулить вьюху v$sqltext, может быть, кто - нибудь знает. Заходил SYSTEM'ом, SYS'ом - выдается сообщение CAN ONLY SELECT FROM FIXED TABLE/VIEWS. Данная вьюшка ссылается на таблицу V_$SQLTEXT - пробую удалить и там, но та же история. Помогите, пожалуйста, кто знает...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Обнуление вьюхи v$sqltext в Oracle 12 года 9 мес. назад #2586

А зачем надо её "обнулять",если не секрет?
Вьюшка, кстати, не "ссылается", а является публичным синонимом другой вьюшки (а не таблицы).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Обнуление вьюхи v$sqltext в Oracle 12 года 9 мес. назад #2587

Обнулять вьюху надо вот зачем. Есть прога, которая делает некоторый запрос - при этом очень надолго задумывается. Есть подозрение, что этот запрос делается по таблице, для которой не построены нужные индексы, поэтому все так долго. Надо вычислить запрос, а как? Для этого делетим v$sqltext, затем запускаем прогу - затем читаем, что там добавилось во вьюху
v$sqltext и т.д....:-)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Обнуление вьюхи v$sqltext в Oracle 12 года 9 мес. назад #2588

Привет!
Ужас:)А не лучше ли сделать трассировку сессии, и анализировать то, что получилось? По-моему намного проще)))

Вкраце: для своей сессии начать трассировку:
alter session set sql_trace=true;
для _чужой_ сессии, не своей:
-определяю sid и serial# сессии из v$session;
-начать трассировку сессии:
exec sys.dbms_system.set_sql_trace_in_session(:sid, :serial, true);
соответственно закончить:
exec sys.dbms_system.set_sql_trace_in_session(:sid, :serial, false);
После начала в директории, точно путь не скажу, но типа /admin/%service_name%/udump появится файл трассировки. Напускаешь на него утилиту tkprof, у меня обычно так:
tkprof !.! output=!.txt insert=!.sql record=!.rec sys=yes
И смотришь, что получилось. Есть еще один вариант:
exec dbms_system.set_ev(<SID>,<SERIAL#>,10046,<LEVEL>,'')

LEVEL

0 - отключить трэйс

1 - обычный трэйс

4 - трэйс с переменными

8 - с задержками (данными о задержках)

12 - с переменными и задержками
Вроде как 10046 - это и есть set sql_trace=true.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от reset.
  • Страница:
  • 1
Время создания страницы: 0.282 секунд