Как я могу видеть запросы, которые выполняются против Oracle?

Я должен видеть запросы, которые отправляются Oracle для выполнения их. Кто-то может дать мне определенные подробные инструкции относительно того, как сделать это?

12
задан vld_apos 13 July 2010 в 14:01
поделиться

2 ответа

Этот запрос покажет запросы, которые выполняются в настоящее время:

select sql_text from v$sqlarea where users_executing > 0;

См. документацию V$SQLAREA

3
ответ дан 2 December 2019 в 19:30
поделиться

Если вы хотите увидеть запросы от конкретного пользователя, вы можете использовать это (при условии, что у вас есть привилегии на запросы v$session и v$sqlarea (обычно через SELECT_CATALOG_ROLE)

SELECT sess.sid,
       sess.username,
       sqla.optimizer_mode,
       sqla.hash_value,
       sqla.address,
       sqla.cpu_time,
       sqla.elapsed_time,
       sqla.sql_text
  FROM v$sqlarea sqla, v$session sess
 WHERE sess.sql_hash_value = sqla.hash_value
   AND sess.sql_address = sqla.address
   AND sess.username = 'SCOTT'

Замените SCOTT на соответствующее имя пользователя в вашей системе

Вывод:

 544 SCOTT      ALL_ROWS   2004330732 07000001064088E8         89391       131836 SELECT sess.sid,        sess.username,
                                                                                        sqla.optimizer_mode,        sqla.h
                                                                                  ash_value,        sqla.address,        s
                                                                                  qla.cpu_time,        sqla.elapsed_time,
                                                                                         sqla.sql_text   FROM v$sqlarea sq
                                                                                  la, v$session sess  WHERE sess.sql_hash_
                                                                                  value = sqla.hash_value    AND sess.sql_
                                                                                  address = sqla.address    AND sess.usern
                                                                                  ame = 'SCOTT'
15
ответ дан 2 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: