Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как отследить запускаемые запросы SQL в Oracle ? / 6 сообщений из 6, страница 1 из 1
15.07.2021, 11:12
    #40084033
sqlerr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить запускаемые запросы SQL в Oracle ?
Добрый день.
Коллеги, пожалуйста, уточните, можно ли как-то отслеживать запускаемые запросы SQL в Oracle ?
Если да, можно, то как это сделать ?

Суть такая, есть несколько сотрудников, и нужно понять кто и что запускает, то есть какое-то логинирование действий пользователей, где будут видны запускаемые запросы, кто запустил, когда запустил, и сколько времени ушло на выполнение запроса.
Если я не достаточно понятно описал свой вопрос, спрашивайте. Всем спасибо за внимание!
...
Рейтинг: 0 / 0
15.07.2021, 11:29
    #40084043
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить запускаемые запросы SQL в Oracle ?
sqlerr,

Для начала, "С какой целью интересуетесь?"
Просто глянуть, кто там сейчас такой дерзкий - одно (session monitor),
контроль кто, куда, и сколько раз лезет - другое (аудит),
все легло и еле ползает - третье (отчеты по нагрузке).
Ответы зависят также от версии СУБД.

Начнем с Session monitor
Можно установить администратору на рабочее место Oracle SQL Developer , там он есть. Это free продукт от Oracle.
Для скачивания, нужно иметь регистрирацию на oracle.com (это бесплатно).

Контроль доступа выполняется средствами audit, но это отдельный вопрос.

Отчеты по нагрузке - в идеале, AWR (нужно иметь лицензию tuning/diagnostic pack), либо используя старый бесплатный инструмент statspack. Есть free аналогичные решения, но как Вы понимаете это оффициально не поддерживается

памятка:
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?
Студентам, желающим помощи

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):

Код: 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.
39.
-- table 1 with column list
with user_tab(user_id,user_name,registry_date) as (
select 1,'Bob',to_date('11.02.1921 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 2,'Max',to_date('11.02.1922 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual union all
select 3,'Jon',to_date('11.02.1923 23:04:44','DD.MM.YYYY HH24:MI:SS') from dual
)
-- table 2 with column list
,user_post(post_id,user_id,parent_post_id,post_date,message) as (
select 100,1,null,to_date('11.02.1923 23:04:00','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 101,2,100,to_date('11.02.1923 23:05:23','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 102,3,100,to_date('11.02.1923 23:05:35','DD.MM.YYYY HH24:MI:SS'),'Hi' from dual union all
select 103,1,102,to_date('11.02.1923 23:06:00','DD.MM.YYYY HH24:MI:SS'),'How are you' from dual union all
select 104,2,102,to_date('11.02.1923 23:07:05','DD.MM.YYYY HH24:MI:SS'),'All right!' from dual union all
select 105,1,101,to_date('11.02.1923 23:06:21','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 106,1,104,to_date('11.02.1923 23:04:37','DD.MM.YYYY HH24:MI:SS'),'Bye' from dual union all
select 107,2,null,to_date('11.02.1923 23:08:56','DD.MM.YYYY HH24:MI:SS'),'Hmm' from dual
)
select
rpad(to_char(p.post_date,'YYYY-MM-DD HH24:MI:SS  '),20+level*2,' ')||u.user_name||': '||p.message as txt
from 
 user_post p
 join user_tab  u on ( p.user_id = u.user_id)
where p.post_date >= u.registry_date
start with p.parent_post_id is null 
connect by prior p.post_id=p.parent_post_id 
;

TXT
--------------------------------------------------------------------------------
1923-02-11 23:04:00   Bob: Hi
1923-02-11 23:05:23     Max: Hi
1923-02-11 23:06:21       Bob: Bye
1923-02-11 23:05:35     Jon: Hi
1923-02-11 23:06:00       Bob: How are you
1923-02-11 23:07:05       Max: All right!
1923-02-11 23:04:37         Bob: Bye
1923-02-11 23:08:56   Max: Hmm

8 rows selected.



3) Покажите что сделали, что получили, без сокращений. ( лучше не в виде screenshot)


4) используйте Тэги, читать код без них неудобно, правильно оформляйте сообщение
...
Рейтинг: 0 / 0
15.07.2021, 11:58
    #40084055
sqlerr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить запускаемые запросы SQL в Oracle ?
Vadim Lejnin,

Спасибо за информацию. Но её недостаточно
Ничего не было сделано и описал кратко, т.к. пока нет знаний на эту тему.
В целом поэтому и написал здесь чтобы понять, можно или нет.
...
Рейтинг: 0 / 0
15.07.2021, 12:41
    #40084078
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить запускаемые запросы SQL в Oracle ?
А попробовать?
Уже поставили Oracle SQL Developer?
[youtube=https://youtu.be/wGp2K8YhH6o]
...
Рейтинг: 0 / 0
15.07.2021, 16:38
    #40084183
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить запускаемые запросы SQL в Oracle ?
sqlerr
Суть такая, есть несколько сотрудников, и нужно понять кто и что запускает, то есть какое-то логинирование действий пользователей, где будут видны запускаемые запросы, кто запустил, когда запустил, и сколько времени ушло на выполнение запроса.

Судя по дальнейшему обсуждению наиболее правильным ответом будет "наймите специалиста".
Vadim Lejnin совершенно справедливо заметил, что средства мониторинга/аудита/контроля доступа/логирования oracle rdbms присутствуют в количестве, они очень разные и каждое из них предназначено для решения очень конкретного круга задач.
Штатного инструмента, полностью подходящего под описание "какое-то логинирование действий пользователей, где будут видны запускаемые запросы, кто запустил, когда запустил, и сколько времени ушло на выполнение запроса" нет по той простой причине, что нагруженная rdbms может выполнять тысячи и десятки тысяч запросов в минуту, логирование как таковое тут не помощник.
Но Вам ничто не мешает воспользоваться любым инструментом сетевого мониторинга вроде WireShark и наслаждаться полотенцами логов.
...
Рейтинг: 0 / 0
15.07.2021, 20:29
    #40084248
sqlerr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отследить запускаемые запросы SQL в Oracle ?
Vadim Lejnin,

Признаюсь, ещё не пробовал. У меня возникла такая необходимость, скорее потому что мне просто стало это интересно.
Надо будет попробовать применить все те инструменты которые вы описывали. SQL Developer вроде есть, но предпочитаю PL/SQL Developer.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как отследить запускаемые запросы SQL в Oracle ? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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