Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Отследить SQL - вызывающий большие изменения  [new]
damp
Member

Откуда:
Сообщений: 134
БД ORACLE 11.2
Пользователей <50 .

В логах периодически появляется
 cannot allocate new log, sequence  
 Checkpoint not complete

Увеличил их кол-ва и размер в 2 раза, такие ошибки стали реже, но все же они есть, и иногда логи переключаются несколько раз в минуту.

За рабочий день изменений, если посчитать по логам изменений - 13-14 ГБ, но база растет не более чем на 700 МВ (Большая часть Блобы) - если судить по дампу.

Хочу отловить SQL вызывающий большое кол-во изменений,
можно ли это увидеть ч/з вьюшки вроде
  sys.view$ ,
  SYS.V_$SQLAREA 

или нужно все таки включать трассировку,
вроде там DBMS_MONITOR может собирать определенную статистику.

Поделитесь опытом, пожалуйста - кто пробовал решать такие задачи?
9 фев 15, 13:22    [17238203]     Ответить | Цитировать Сообщить модератору
 Re: Отследить SQL - вызывающий большие изменения  [new]
Если не меркель то кто?
Guest
damp,

Вот тебе статистика какой обьект генерит изменения.
select trunc(begin_interval_time,'HH24')hour,owner,object_name,object_type,sum(db_block_changes_delta) hour_block_changes
from DBA_HIST_SEG_STAT a,DBA_HIST_SNAPSHOT s,DBA_HIST_SEG_STAT_OBJ o
where a.snap_id=s.snap_id and o.obj#=a.obj# and o.dataobj#=a.dataobj# and object_type!='UNDEFINED'
and begin_interval_time >sysdate-20/24 
group by trunc(begin_interval_time,'HH24'),owner,object_name,object_type
having sum(db_block_changes_delta)>40000
order  by 1 desc, 5 desc;


а там уже в коде сам найдешь какой запрос это делает
9 фев 15, 13:48    [17238400]     Ответить | Цитировать Сообщить модератору
 Re: Отследить SQL - вызывающий большие изменения  [new]
damp
Member

Откуда:
Сообщений: 134
Если не меркель то кто?
damp,

Вот тебе статистика какой обьект генерит изменения.
select trunc(begin_interval_time,'HH24')hour,owner,object_name,object_type,sum(db_block_changes_delta) hour_block_changes
from DBA_HIST_SEG_STAT a,DBA_HIST_SNAPSHOT s,DBA_HIST_SEG_STAT_OBJ o
where a.snap_id=s.snap_id and o.obj#=a.obj# and o.dataobj#=a.dataobj# and object_type!='UNDEFINED'
and begin_interval_time >sysdate-20/24 
group by trunc(begin_interval_time,'HH24'),owner,object_name,object_type
having sum(db_block_changes_delta)>40000
order  by 1 desc, 5 desc;


а там уже в коде сам найдешь какой запрос это делает


Спасибо! Это уже что-то ...
10 фев 15, 09:52    [17242394]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить