Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как обнулить вьюху v$sqltext? / 15 сообщений из 15, страница 1 из 1
21.01.2003, 12:40
    #32093947
Boytronic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Добрый день. Как обнулить вьюху v$sqltext, может быть, кто - нибудь знает. Заходил SYSTEM'ом, SYS'ом - выдается сообщение CAN ONLY SELECT FROM FIXED TABLE/VIEWS. Данная вьюшка ссылается на таблицу V_$SQLTEXT - пробую удалить и там, но та же история. Помогите, пожалуйста, кто знает...
...
Рейтинг: 0 / 0
21.01.2003, 13:19
    #32093977
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
А зачем надо её "обнулять",если не секрет?
Вьюшка, кстати, не "ссылается", а является публичным синонимом другой вьюшки (а не таблицы).
...
Рейтинг: 0 / 0
21.01.2003, 13:25
    #32093983
Boytronic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Обнулять вьюху надо вот зачем. Есть прога, которая делает некоторый запрос - при этом очень надолго задумывается. Есть подозрение, что этот запрос делается по таблице, для которой не построены нужные индексы, поэтому все так долго. Надо вычислить запрос, а как? Для этого делетим v$sqltext, затем запускаем прогу - затем читаем, что там добавилось во вьюху
v$sqltext и т.д....:-)
...
Рейтинг: 0 / 0
21.01.2003, 13:30
    #32093987
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Нда....
...
Рейтинг: 0 / 0
21.01.2003, 13:31
    #32093989
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Ужас:) Не лучше ли сделать трассировку сессии, и анализировать то, что получилось?
...
Рейтинг: 0 / 0
21.01.2003, 13:33
    #32093991
Oracle_Developer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Попробуй сделать.
alter system flush shared_pool
...
Рейтинг: 0 / 0
21.01.2003, 13:34
    #32093992
Boytronic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Денис, не могли бы Вы пояснить, как это делается?
...
Рейтинг: 0 / 0
21.01.2003, 13:35
    #32093994
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Всё же задачу надо было ставить как "а как узнать, какие запросы и как выполняет некая программа, при отсутствии исходного кода программы". Ага? :)
...
Рейтинг: 0 / 0
21.01.2003, 13:38
    #32093998
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Я хоть и не Денис, но объясню:

Код: plaintext
dbms_system.set_sql_trace_in_session(sid,serial#,true)


сид и сериалнум взять из v$session

Есть и другие способы - см., например, http://oradba.com.ru/
...
Рейтинг: 0 / 0
21.01.2003, 13:55
    #32094028
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Я уж допишу, раз начал:)
Вкраце: для своей сессии начать трассировку:
Код: plaintext
1.
alter session set sql_trace=true;

для _чужой_ сессии, не своей:
-определяю sid и serial# сессии из v$session;
-начать трассировку сессии:
Код: plaintext
1.
exec sys.dbms_system.set_sql_trace_in_session(:sid, :serial, true); 

соответственно закончить:
Код: plaintext
1.
exec sys.dbms_system.set_sql_trace_in_session(:sid, :serial, false); 

После начала в директории, точно путь не скажу, но типа /admin/%service_name%/udump появится файл трассировки. Напускаешь на него утилиту tkprof, у меня обычно так:
Код: plaintext
1.
tkprof !.! output=!.txt insert=!.sql record=!.rec sys=yes

И смотришь, что получилось. Есть еще один вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
exec dbms_system.set_ev(<SID>,<SERIAL#>, 10046 ,<LEVEL>,'')
LEVEL
 0  - отключить трэйс
 1  - обычный трэйс
 4  - трэйс с переменными
 8  - с задержками (данными о задержках)
 12  - с переменными и задержками

Вроде как 10046 - это и есть set sql_trace=true.

2Scott Tiger: а где именно на http://oradba.com.ru/ ? 2killed: Ваше хозяйство, если не ошибаюсь?
...
Рейтинг: 0 / 0
21.01.2003, 13:57
    #32094031
softbuilder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Делаешь в сессии, в которой будут запросы выполняться:
Код: plaintext
1.
alter session set sql_trace=true

Если нет возможности доступа к сессии, тогда пропиши тоже самое в init-файле. После чего сделай рестарт базы.
Код: plaintext
1.
sql_trace=true


Потом смотри трэйсы с помощью tkprof
...
Рейтинг: 0 / 0
21.01.2003, 14:27
    #32094058
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
2Denis: таки нашёл - здесь - http://oradba.com.ru/tuning/optimizer/tips/t2_sqltrace.shtml

2softbuilder: перезапускаться из-за этого...
...
Рейтинг: 0 / 0
21.01.2003, 15:28
    #32094101
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
to Scott Tiger:
Первый раз слышу про sys.dbms_system.set_sql_trace_in_session, поэтому наверно.
Это в какой версии?
...
Рейтинг: 0 / 0
21.01.2003, 19:10
    #32094282
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
В 8i точно, может и раньше есть, я не в курсе.
...
Рейтинг: 0 / 0
21.01.2003, 19:27
    #32094296
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обнулить вьюху v$sqltext?
Что интересно, в доке от 8.1.6 об этом пакете - ни слова, хотя он есть :)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как обнулить вьюху v$sqltext? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]