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

Суть такая, есть несколько сотрудников, и нужно понять кто и что запускает, то есть какое-то логинирование действий пользователей, где будут видны запускаемые запросы, кто запустил, когда запустил, и сколько времени ушло на выполнение запроса.
Если я не достаточно понятно описал свой вопрос, спрашивайте. Всем спасибо за внимание!
...
Рейтинг: 0 / 0
Как отследить запускаемые запросы SQL в Oracle ?
    #40084043
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как отследить запускаемые запросы SQL в Oracle ?
    #40084055
sqlerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

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

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

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


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