powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / V$SQL , GV$SQL
8 сообщений из 8, страница 1 из 1
V$SQL , GV$SQL
    #39934361
Aleks Niches
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

Как определить по sql_text или sql_id источник (procedure , package , view , synonym , function , trigger ) и т.д. в V$SQL , GV$SQL?

Возможно это вообще ?

Спасибо.
...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934362
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Aleks Niches,

Смотри в v$active_sessiin_history
...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934363
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks Niches,

dba_statements
...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934365
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks Niches,

Для хранимого кода есть идентификатор объекта и номер строки где конкретный запрос хранится.
Код: plsql
1.
2.
3.
4.
5.
6.
select (select object_name
          from dba_objects
         where object_id = v.program_id) name,
       program_line# line,
       v.*
  from v$sql v
...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934430
Aleks Niches
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем , кто откликнулся
...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934677
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кобанчег
Для хранимого кода есть идентификатор объекта и номер строки где конкретный запрос хранится.
только одно уточнение: program_id, module, action и тому подобные поля в v$sql принадлежат родительскому курсору, соответственно, если этот запрос много где вызывается и даже имеет для разных мест разные дочерние курсоры, то получите вы все равно только значения, полученные при первом парсе родительского курсора.

Простой пример:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
create or replace procedure parse1(s varchar2) is
 n int;
begin
   select/*+zz*/ count(*) into n from dual z where rownum=s;
   select/*+zz*/ count(*) into n from dual z where rownum=s;
   select/*+zz*/ count(*) into n from dual z where rownum=s;
end;
/
create or replace procedure parse2(i number) is
 n int;
begin
   select/*+zz*/ count(*) into n from dual z where rownum=i;
   select/*+zz*/ count(*) into n from dual z where rownum=i;
   select/*+zz*/ count(*) into n from dual z where rownum=i;
end;
/
begin
   parse1('1');
   parse2(1);
end;
/
select (select object_name
          from dba_objects
         where object_id = v.program_id) name,
       program_line# line,
       v.child_number,
       v.open_versions,
       v.executions,
       v.sql_text
from v$sql v
where sql_text like 'SELECT/*+zz*/%'
/
NAME             LINE CHILD_NUMBER OPEN_VERSIONS EXECUTIONS SQL_TEXT
---------- ---------- ------------ ------------- ---------- ------------------------------------------------------------
PARSE1              4            0             0          3 SELECT/*+zz*/ COUNT(*) FROM DUAL Z WHERE ROWNUM=:B1
PARSE1              4            1             1          3 SELECT/*+zz*/ COUNT(*) FROM DUAL Z WHERE ROWNUM=:B1

2 rows selected.

...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934687
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

к слову ситуации, когда SQL текст в 2 разных процедурах абсолютно идентичен не так часто встречаются(системы конечно бывают разные, тем не менее) и данный запрос в абсолютном большинстве случаев покажет реальное местонахождение запроса. А быстрый запрос в v$active_session_history может и не попасть
...
Рейтинг: 0 / 0
V$SQL , GV$SQL
    #39934728
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
feagor,

В процедурах - да, но мне чаще приходится иметь дело с выяснением софтины отправившей запрос: разные софтины или системы или даже разные версии одного приложения. И про ash - все верно. Но вопросы обычно не про быстрые лёгкие и редкие запросы, а про тяжёлые, которые вызывают проблемы
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / V$SQL , GV$SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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