Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
insert into test_history(id, device_id, parameter_id, value, event_date)
select test_history_seq.nextval, a.device_id, a.parameter_id, e.value, e.last_date
from test_data a
inner join test_device b on ( b.id = a.device_id )
inner join test_parameter c on ( c.id = a.parameter_id )
inner join test_parameter_type d on ( d.id = c.type_id and d.name = 'uptime' )
left join test_state e on ( e.device_id = a.device_id and
e.parameter_id = a.parameter_id )
where e.value > a.value;
CREATE GLOBAL TEMPORARY TABLE tmp_1 (ID INTEGER) ON COMMIT PRESERVE ROWS;
set autotrace on
SQL> INSERT INTO tmp_1 SELECT ROWNUM FROM dba_objects;
90829 rows created.
Statistics
----------------------------------------------------------
838 recursive calls
1060 db block gets
3917 consistent gets
6 physical reads
255720 redo size
573 bytes sent via SQL*Net to client
527 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
59 sorts (memory)
0 sorts (disk)
90829 rows processed

insert into test_history(id, device_id, parameter_id, value, event_date)
select test_history_seq.nextval, a.device_id, a.parameter_id, a.value, a.event_date
from test_data a
inner join test_parameter c on ( c.id = a.parameter_id )
inner join test_parameter_type d on ( d.id = c.type_id)
left join test_state e on ( e.device_id = a.device_id and e.parameter_id = a.parameter_id )
where ((d.name = 'default' ) and (e.value is null or e.value <> a.value)) or
((d.name = 'uptime' ) and (e.value > a.value))
plsql: 372, 376, 376, 374, 376
commit: 267, 259, 271, 261, 266
commit_nowait: 340, 338, 338, 336, 335
collection: 621, 441, 488, 789, 810
789, 809, 821, 810, 376
temporary: 2283, 1779, 1730, 1779, 2785 (93)
distinct: 2666, 2369, 2207, 2463, 2369 (109)
bulk: 1049, 1049, 1031, 1066, 1067
create or replace type ae_state_rec as object (
device_id number,
profile_id number,
param_id number,
num varchar2(300),
value varchar2(300)
)
/
show errors;
create or replace type ae_state_tab as table of ae_state_rec;
/
show errors;
create or replace package ae_monitoring as
procedure addValue( p_device in number
, p_profile in number
, p_param in number
, p_num in varchar2
, p_val in varchar2 );
procedure addValues( p_tab in ae_state_tab );
procedure saveValues;
procedure saveValuesDistinct;
procedure saveValues( p_tab in ae_state_tab );
end ae_monitoring;
/
show errors;
create or replace package body ae_monitoring as
g_ifName_parameter constant number default 103;
g_default_policy constant number default 1;
g_uptime_policy constant number default 2;
g_threshold_policy constant number default 3;
g_increase_type constant number default 1;
g_decrease_type constant number default 2;
g_delta_type constant number default 3;
procedure addValue( p_device in number
, p_profile in number
, p_param in number
, p_num in varchar2
, p_val in varchar2 ) as
cursor c_res(p_type number) is
select r.id, r.name
from ae_resource r
where r.device_id = p_device
and r.res_num = p_num
and r.type_id = p_type
and r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1);
cursor c_state(p_resid number) is
select s.value
from ae_state s
where s.res_id = p_resid
and s.param_id = p_param;
l_resid ae_resource.id%type default null;
l_resname ae_resource.name%type default null;
l_oldval ae_state.value%type default null;
l_restype ae_profile_detail.type_id%type default null;
l_owntype ae_resource_type.owner_id%type default null;
l_owner ae_resource.id%type default null;
l_policy ae_state_policy.type_id%type default null;
l_polid ae_state_policy.id%type default null;
l_count number default 0;
begin
-- Получить тип ресурса
select d.type_id, r.owner_id
into l_restype, l_owntype
from ae_profile_detail d
inner join ae_resource_type r on (r.id = d.type_id)
where d.profile_id = p_profile
and d.param_id = p_param;
-- Получить ID владельца
if not l_owntype is null then
select r.id into l_owner
from ae_resource r
where r.device_id = p_device
and r.type_id = l_owntype;
end if;
-- Обработать имя интерфейса
if p_param = g_ifName_parameter then
open c_res(l_restype);
fetch c_res into l_resid, l_resname;
if c_res%notfound or l_resname <> p_val then
-- Закрыть старый ресурс интерфейса
update ae_resource set end_date = sysdate
where id = l_resid;
-- Создать новый ресурс интерфейса
insert into ae_resource(id, device_id, owner_id, type_id, res_num, name)
values (ae_resource_seq.nextval, p_device, l_owner, l_restype, p_num, p_val);
end if;
close c_res;
return;
end if;
-- Получить ID ресурса
open c_res(l_restype);
fetch c_res into l_resid, l_resname;
if c_res%notfound then
-- Если ресурс не найден, создать новый ресурс интерфейса
insert into ae_resource(id, device_id, owner_id, type_id, res_num, name)
values (ae_resource_seq.nextval, p_device, l_owner, l_restype, p_num, p_val)
returning id into l_resid;
end if;
-- Получить старое значение параметра
open c_state(l_resid);
fetch c_state into l_oldval;
if c_state%notfound then
l_oldval := null;
end if;
close c_state;
-- Получить политику сохранения значений
select l.type_id, l.id
into l_policy, l_polid
from ae_parameter p
inner join ae_domain d on (d.id = p.domain_id)
inner join ae_state_policy l on (l.id = d.policy_id)
where p.id = p_param;
-- Получить количество пересеченных порогов
select count(*)
into l_count
from ae_threshold t
where t.policy_id = l_polid
and (( t.type_id = g_increase_type and l_oldval <= t.value and p_val >= t.value ) or
( t.type_id = g_decrease_type and l_oldval >= t.value and p_val <= t.value ) or
( t.type_id = g_delta_type and abs(p_val - l_oldval) >= t.value ));
-- Сохранить запись в ae_state_log в соответствии с политикой
if l_oldval is null or l_count > 0 or
( l_policy = g_uptime_policy and p_val < l_oldval) or
( l_policy = g_default_policy and p_val <> l_oldval) then
insert into ae_state_log(id, res_id, param_id, value)
values (ae_state_log_seq.nextval, l_resid, p_param, decode(l_policy, g_uptime_policy, nvl(l_oldval, p_val), p_val));
end if;
-- Обновить ae_state
update ae_state set value = p_val
, datetime = current_timestamp
where res_id = l_resid and param_id = p_param;
if sql%rowcount = 0 then
insert into ae_state(id, param_id, res_id, value)
values (ae_state_seq.nextval, p_param, l_resid, p_val);
end if;
close c_res;
exception
when others then
if c_res%isopen then close c_res; end if;
if c_state%isopen then close c_state; end if;
raise;
end;
procedure addValues( p_tab in ae_state_tab ) as
begin
for i in 1 .. p_tab.count loop
addValue( p_device => p_tab(i).device_id
, p_profile => p_tab(i).profile_id
, p_param => p_tab(i).param_id
, p_num => p_tab(i).num
, p_val => p_tab(i).value );
end loop;
commit write nowait;
end;
procedure saveValues as
begin
-- Создать ресурс, если он отсутствует
merge into ae_resource d
using ( select t.id, t.device_id, t.num, t.value name, p.type_id, o.id owner_id
from ae_state_tmp t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource_type r on (r.id = p.type_id)
left join ae_resource o on (o.device_id = t.device_id and o.type_id = r.owner_id)
where t.param_id = g_ifName_parameter
) s
on ( d.device_id = s.device_id and d.res_num = s.num and d.type_id = s.type_id and
d.start_date <= sysdate and sysdate <= nvl(d.end_date, sysdate + 1) )
when matched then
update set d.tmp_id = s.id
where d.name <> s.name
when not matched then
insert (id, device_id, owner_id, type_id, res_num, name)
values (ae_resource_seq.nextval, s.device_id, s.owner_id, s.type_id, s.num, s.name);
-- Добавить недостающие ae_resource
insert into ae_resource(id, device_id, owner_id, type_id, res_num, name)
select ae_resource_seq.nextval, t.device_id, o.id, p.type_id, t.num, t.value
from ae_state_tmp t
inner join ae_resource c on (c.tmp_id = t.id)
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource_type r on (r.id = p.type_id)
left join ae_resource o on (o.device_id = t.device_id and o.type_id = r.owner_id);
-- Закрыть устаревшие интерфейсы
update ae_resource set end_date = sysdate
, tmp_id = null
where tmp_id > 0;
-- Сохранить записи в ae_state_log
insert into ae_state_log(id, res_id, param_id, value)
select ae_state_log_seq.nextval, id, param_id, value
from ( select distinct r.id, t.param_id,
decode(l.type_id, g_uptime_policy, nvl(s.value, t.value), t.value) value
from ae_state_tmp t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource r on ( r.device_id = t.device_id and r.res_num = t.num and r.type_id = p.type_id and
r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1))
left join ae_state s on (s.res_id = r.id and s.param_id = t.param_id)
inner join ae_parameter a on (a.id = p.param_id)
inner join ae_domain d on (d.id = a.domain_id)
inner join ae_state_policy l on (l.id = d.policy_id)
left join ae_threshold h on (
h.policy_id = l.id and
(( h.type_id = g_increase_type and s.value <= h.value and t.value >= h.value ) or
( h.type_id = g_decrease_type and s.value >= h.value and t.value <= h.value ) or
( h.type_id = g_delta_type and abs(t.value - s.value) >= h.value )))
where ( s.id is null or not h.id is null
or ( l.type_id = g_uptime_policy and t.value < s.value )
or ( l.type_id = g_default_policy and t.value <> s.value ) )
and t.param_id <> g_ifName_parameter );
-- Обновить ae_state
merge into ae_state d
using ( select t.param_id, t.value, r.id res_id
from ae_state_tmp t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource r on ( r.device_id = t.device_id and r.res_num = t.num and r.type_id = p.type_id and
r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1))
where t.param_id <> g_ifName_parameter
) s
on (d.res_id = s.res_id and d.param_id = s.param_id)
when matched then
update set d.value = s.value
, d.datetime = current_timestamp
when not matched then
insert (id, param_id, res_id, value)
values (ae_state_seq.nextval, s.param_id, s.res_id, s.value);
-- Сохранить изменения
commit write nowait;
end;
procedure saveValuesDistinct as
begin
-- Создать ресурс, если он отсутствует
merge into ae_resource d
using ( select t.id, t.device_id, t.num, t.value name, p.type_id, o.id owner_id
from ( select device_id, profile_id, param_id, num
, max(id) keep (dense_rank last order by datetime) id
, max(value) keep (dense_rank last order by datetime) value
, max(datetime) datetime
from ae_state_tmp
group by device_id, profile_id, param_id, num
) t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource_type r on (r.id = p.type_id)
left join ae_resource o on (o.device_id = t.device_id and o.type_id = r.owner_id)
where t.param_id = g_ifName_parameter
) s
on ( d.device_id = s.device_id and d.res_num = s.num and d.type_id = s.type_id and
d.start_date <= sysdate and sysdate <= nvl(d.end_date, sysdate + 1) )
when matched then
update set d.tmp_id = s.id
where d.name <> s.name
when not matched then
insert (id, device_id, owner_id, type_id, res_num, name)
values (ae_resource_seq.nextval, s.device_id, s.owner_id, s.type_id, s.num, s.name);
-- Добавить недостающие ae_resource
insert into ae_resource(id, device_id, owner_id, type_id, res_num, name)
select ae_resource_seq.nextval, t.device_id, o.id, p.type_id, t.num, t.value
from ( select device_id, profile_id, param_id, num
, max(id) keep (dense_rank last order by datetime) id
, max(value) keep (dense_rank last order by datetime) value
, max(datetime) datetime
from ae_state_tmp
group by device_id, profile_id, param_id, num
) t
inner join ae_resource c on (c.tmp_id = t.id)
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource_type r on (r.id = p.type_id)
left join ae_resource o on (o.device_id = t.device_id and o.type_id = r.owner_id);
-- Закрыть устаревшие интерфейсы
update ae_resource set end_date = sysdate
, tmp_id = null
where tmp_id > 0;
-- Сохранить записи в ae_state_log
insert into ae_state_log(id, res_id, param_id, value)
select ae_state_log_seq.nextval, id, param_id, value
from ( select distinct r.id, t.param_id,
decode(l.type_id, g_uptime_policy, nvl(s.value, t.value), t.value) value
from ( select device_id, profile_id, param_id, num
, max(id) keep (dense_rank last order by datetime) id
, max(value) keep (dense_rank last order by datetime) value
, max(datetime) datetime
from ae_state_tmp
group by device_id, profile_id, param_id, num
) t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource r on ( r.device_id = t.device_id and r.res_num = t.num and r.type_id = p.type_id and
r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1))
left join ae_state s on (s.res_id = r.id and s.param_id = t.param_id)
inner join ae_parameter a on (a.id = p.param_id)
inner join ae_domain d on (d.id = a.domain_id)
inner join ae_state_policy l on (l.id = d.policy_id)
left join ae_threshold h on (
h.policy_id = l.id and
(( h.type_id = g_increase_type and s.value <= h.value and t.value >= h.value ) or
( h.type_id = g_decrease_type and s.value >= h.value and t.value <= h.value ) or
( h.type_id = g_delta_type and abs(t.value - s.value) >= h.value )))
where ( s.id is null or not h.id is null
or ( l.type_id = g_uptime_policy and t.value < s.value )
or ( l.type_id = g_default_policy and t.value <> s.value ) )
and t.param_id <> g_ifName_parameter );
-- Обновить ae_state
merge into ae_state d
using ( select t.param_id, t.value, r.id res_id
from ( select device_id, profile_id, param_id, num
, max(id) keep (dense_rank last order by datetime) id
, max(value) keep (dense_rank last order by datetime) value
, max(datetime) datetime
from ae_state_tmp
group by device_id, profile_id, param_id, num
) t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource r on ( r.device_id = t.device_id and r.res_num = t.num and r.type_id = p.type_id and
r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1))
where t.param_id <> g_ifName_parameter
) s
on (d.res_id = s.res_id and d.param_id = s.param_id)
when matched then
update set d.value = s.value
, d.datetime = current_timestamp
when not matched then
insert (id, param_id, res_id, value)
values (ae_state_seq.nextval, s.param_id, s.res_id, s.value);
-- Сохранить изменения
commit write nowait;
end;
procedure saveValues( p_tab in ae_state_tab ) as
begin
-- Создать ресурс, если он отсутствует
merge into ae_resource d
using ( select t.device_id, t.num, t.value name, p.type_id, o.id owner_id
from ( select device_id, profile_id, param_id, num
, max(value) value
from table( p_tab )
group by device_id, profile_id, param_id, num
) t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource_type r on (r.id = p.type_id)
left join ae_resource o on (o.device_id = t.device_id and o.type_id = r.owner_id)
where t.param_id = g_ifName_parameter
) s
on ( d.device_id = s.device_id and d.res_num = s.num and d.type_id = s.type_id and
d.start_date <= sysdate and sysdate <= nvl(d.end_date, sysdate + 1) )
when not matched then
insert (id, device_id, owner_id, type_id, res_num, name)
values (ae_resource_seq.nextval, s.device_id, s.owner_id, s.type_id, s.num, s.name);
-- Сохранить записи в ae_state_log
insert into ae_state_log(id, res_id, param_id, value)
select ae_state_log_seq.nextval, id, param_id, value
from ( select distinct r.id, t.param_id,
decode(l.type_id, g_uptime_policy, nvl(s.value, t.value), t.value) value
from ( select device_id, profile_id, param_id, num
, max(value) value
from table( p_tab )
group by device_id, profile_id, param_id, num
) t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource r on ( r.device_id = t.device_id and r.res_num = t.num and r.type_id = p.type_id and
r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1))
left join ae_state s on (s.res_id = r.id and s.param_id = t.param_id)
inner join ae_parameter a on (a.id = p.param_id)
inner join ae_domain d on (d.id = a.domain_id)
inner join ae_state_policy l on (l.id = d.policy_id)
left join ae_threshold h on (
h.policy_id = l.id and
(( h.type_id = g_increase_type and s.value <= h.value and t.value >= h.value ) or
( h.type_id = g_decrease_type and s.value >= h.value and t.value <= h.value ) or
( h.type_id = g_delta_type and abs(t.value - s.value) >= h.value )))
where ( s.id is null or not h.id is null
or ( l.type_id = g_uptime_policy and t.value < s.value )
or ( l.type_id = g_default_policy and t.value <> s.value ) )
and t.param_id <> g_ifName_parameter );
-- Обновить ae_state
merge into ae_state d
using ( select t.param_id, t.value, r.id res_id
from ( select device_id, profile_id, param_id, num
, max(value) value
from table( p_tab )
group by device_id, profile_id, param_id, num
) t
inner join ae_profile_detail p on (p.profile_id = t.profile_id and p.param_id = t.param_id)
inner join ae_resource r on ( r.device_id = t.device_id and r.res_num = t.num and r.type_id = p.type_id and
r.start_date <= sysdate and sysdate <= nvl(r.end_date, sysdate + 1))
where t.param_id <> g_ifName_parameter
) s
on (d.res_id = s.res_id and d.param_id = s.param_id)
when matched then
update set d.value = s.value
, d.datetime = current_timestamp
when not matched then
insert (id, param_id, res_id, value)
values (ae_state_seq.nextval, s.param_id, s.res_id, s.value);
-- Сохранить изменения
commit write nowait;
end;
end ae_monitoring;
/
show errors;
package com.amfitel.m2000.ae.tests.jdbc;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.sql.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Test {
private final static String CLASS_NAME = "oracle.jdbc.driver.OracleDriver";
private final static String USER_CONN = "jdbc:oracle:thin:@192.168.124.35:1521:dev101";
private final static String USER_NAME = "ais";
private final static String USER_PASS = "ais";
private final static boolean AUTO_COMMIT_MODE = false;
private final static int BULK_SIZE = 1;
private final static int ALL_SIZE = 1000;
private final static String INS_VAL_SQL =
"insert into ae_state_tmp(id, device_id, profile_id, param_id, num, value) values (?,?,?,?,?,?)";
private final static String MERGE_VAL_SQL =
"merge into ae_state_tmp d " +
"using ( select ? id,? device_id,? profile_id,? param_id,? num,? value " +
" from dual" +
" ) s " +
"on ( d.device_id = s.device_id and d.profile_id = s.profile_id and " +
" d.param_id = s.param_id and d.num = s.num ) " +
"when matched then " +
" update set d.value = s.value " +
"when not matched then " +
" insert (id, device_id, profile_id, param_id, num, value) " +
" values (s.id, s.device_id, s.profile_id, s.param_id, s.num, s.value)";
private final static String SAVE_VALUES_SQL =
"begin ae_monitoring.saveValues; end;";
private final static String SAVE_VALUES_DISTINCT_SQL =
"begin ae_monitoring.saveValuesDistinct; end;";
private final static String ADD_VAL_SQL =
"begin ae_monitoring.addValue(?,?,?,?,?); end;";
private final static String ADD_VALUES_SQL =
"begin ae_monitoring.addValues(?); end;";
private final static String BULK_VALUES_SQL =
"begin ae_monitoring.saveValues(?); end;";
private final static Long DEVICE_ID = 0L;
private final static Long PROFILE_ID = 1L;
private final static Long UPTIME_PARAM_ID = 101L;
private final static Long IFNAME_PARAM_ID = 103L;
private final static Long INOCT_PARAM_ID = 104L;
private final static String FAKE_NUM_VALUE = "0";
private Connection c = null;
private void test_plsql() throws SQLException {
System.out.println("test_plsql:");
CallableStatement st = c.prepareCall(ADD_VAL_SQL);
Long timestamp = System.currentTimeMillis();
Long uptime = 0L;
Long inoct = 0L;
try {
for (int i = 1; i <= ALL_SIZE; i++) {
// Передать uptime
st.setLong(1, DEVICE_ID);
st.setLong(2, PROFILE_ID);
st.setLong(3, UPTIME_PARAM_ID);
st.setString(4, FAKE_NUM_VALUE);
st.setString(5, uptime.toString());
st.execute();
// Передать имя интерфейса
st.setLong(1, DEVICE_ID);
st.setLong(2, PROFILE_ID);
st.setLong(3, IFNAME_PARAM_ID);
st.setString(4, Integer.toString((i % 100) + 1));
st.setString(5, Integer.toString((i % 100) + 1));
st.execute();
// Передать счетчик трафика
st.setLong(1, DEVICE_ID);
st.setLong(2, PROFILE_ID);
st.setLong(3, INOCT_PARAM_ID);
st.setString(4, Integer.toString((i % 100) + 1));
st.setString(5, inoct.toString());
st.execute();
// Увеличить счетчики
uptime += 100L;
if (uptime >= 1000) {
uptime = 0L;
}
inoct += 10L;
}
} finally {
st.close();
}
Long delta_1 = System.currentTimeMillis() - timestamp;
System.out.println((ALL_SIZE * 1000L) / delta_1);
timestamp = System.currentTimeMillis();
c.commit();
Long delta_2 = System.currentTimeMillis() - timestamp;
System.out.println(delta_2);
System.out.println((ALL_SIZE * 1000L) / (delta_1 - delta_2));
}
private void test_temporary() throws SQLException {
System.out.println("test_temporary:");
CallableStatement st = c.prepareCall(MERGE_VAL_SQL);
Long timestamp = System.currentTimeMillis();
Long uptime = 0L;
Long inoct = 0L;
Long ix = 1L;
int bulk = 1;
try {
for (int i = 1; i <= ALL_SIZE; i++) {
// Передать uptime
st.setLong(1, ix++);
st.setLong(2, DEVICE_ID);
st.setLong(3, PROFILE_ID);
st.setLong(4, UPTIME_PARAM_ID);
st.setString(5, FAKE_NUM_VALUE);
st.setString(6, uptime.toString());
st.addBatch();
// Передать имя интерфейса
st.setLong(1, ix++);
st.setLong(2, DEVICE_ID);
st.setLong(3, PROFILE_ID);
st.setLong(4, IFNAME_PARAM_ID);
st.setString(5, Integer.toString((i % 100) + 1));
st.setString(6, Integer.toString((i % 100) + 1));
st.addBatch();
// Передать счетчик трафика
st.setLong(1, ix++);
st.setLong(2, DEVICE_ID);
st.setLong(3, PROFILE_ID);
st.setLong(4, INOCT_PARAM_ID);
st.setString(5, Integer.toString((i % 100) + 1));
st.setString(6, inoct.toString());
st.addBatch();
if (--bulk <= 0) {
st.executeBatch();
bulk = 1;
}
// Увеличить счетчики
uptime += 100L;
if (uptime >= 1000) {
uptime = 0L;
}
inoct += 10L;
}
if (bulk < 1) {
st.executeBatch();
}
} finally {
st.close();
}
Long delta_1 = System.currentTimeMillis() - timestamp;
System.out.println((ALL_SIZE * 1000L) / delta_1);
timestamp = System.currentTimeMillis();
st = c.prepareCall(SAVE_VALUES_SQL);
timestamp = System.currentTimeMillis();
try {
st.execute();
} finally {
st.close();
}
Long delta_2 = System.currentTimeMillis() - timestamp;
System.out.println(delta_2);
System.out.println((ALL_SIZE * 1000L) / (delta_1 - delta_2));
}
private void test_temporary_distinct() throws SQLException {
System.out.println("test_temporary:");
CallableStatement st = c.prepareCall(INS_VAL_SQL);
Long timestamp = System.currentTimeMillis();
Long uptime = 0L;
Long inoct = 0L;
Long ix = 1L;
int bulk = BULK_SIZE;
try {
for (int i = 1; i <= ALL_SIZE; i++) {
// Передать uptime
st.setLong(1, ix++);
st.setLong(2, DEVICE_ID);
st.setLong(3, PROFILE_ID);
st.setLong(4, UPTIME_PARAM_ID);
st.setString(5, FAKE_NUM_VALUE);
st.setString(6, uptime.toString());
st.addBatch();
// Передать имя интерфейса
st.setLong(1, ix++);
st.setLong(2, DEVICE_ID);
st.setLong(3, PROFILE_ID);
st.setLong(4, IFNAME_PARAM_ID);
st.setString(5, Integer.toString((i % 100) + 1));
st.setString(6, Integer.toString((i % 100) + 1));
st.addBatch();
// Передать счетчик трафика
st.setLong(1, ix++);
st.setLong(2, DEVICE_ID);
st.setLong(3, PROFILE_ID);
st.setLong(4, INOCT_PARAM_ID);
st.setString(5, Integer.toString((i % 100) + 1));
st.setString(6, inoct.toString());
st.addBatch();
if (--bulk <= 0) {
st.executeBatch();
bulk = BULK_SIZE;
}
// Увеличить счетчики
uptime += 100L;
if (uptime >= 1000) {
uptime = 0L;
}
inoct += 10L;
}
if (bulk < BULK_SIZE) {
st.executeBatch();
}
} finally {
st.close();
}
Long delta_1 = System.currentTimeMillis() - timestamp;
System.out.println((ALL_SIZE * 1000L) / delta_1);
timestamp = System.currentTimeMillis();
st = c.prepareCall(SAVE_VALUES_DISTINCT_SQL);
timestamp = System.currentTimeMillis();
try {
st.execute();
} finally {
st.close();
}
Long delta_2 = System.currentTimeMillis() - timestamp;
System.out.println(delta_2);
System.out.println((ALL_SIZE * 1000L) / (delta_1 - delta_2));
}
private void test_collection() throws SQLException {
System.out.println("test_collection:");
OracleCallableStatement st = (OracleCallableStatement)c.prepareCall(ADD_VALUES_SQL);
int oracleId = CharacterSet.CL8MSWIN1251_CHARSET;
CharacterSet charSet = CharacterSet.make(oracleId);
Long timestamp = System.currentTimeMillis();
Long uptime = 0L;
Long inoct = 0L;
RecType r[] = new RecType[ALL_SIZE * 3];
int ix = 0;
for (int i = 1; i <= ALL_SIZE; i++) {
// Передать uptime
r[ix++] = new RecType(
new NUMBER(DEVICE_ID),
new NUMBER(PROFILE_ID),
new NUMBER(UPTIME_PARAM_ID),
new CHAR(FAKE_NUM_VALUE, charSet),
new CHAR(uptime.toString(), charSet));
// Передать имя интерфейса
r[ix++] = new RecType(
new NUMBER(DEVICE_ID),
new NUMBER(PROFILE_ID),
new NUMBER(IFNAME_PARAM_ID),
new CHAR(Integer.toString((i % 100) + 1), charSet),
new CHAR(Integer.toString((i % 100) + 1), charSet));
// Передать счетчик трафика
r[ix++] = new RecType(
new NUMBER(DEVICE_ID),
new NUMBER(PROFILE_ID),
new NUMBER(INOCT_PARAM_ID),
new CHAR(Integer.toString((i % 100) + 1), charSet),
new CHAR(inoct.toString(), charSet));
// Увеличить счетчики
uptime += 100L;
if (uptime >= 1000) {
uptime = 0L;
}
inoct += 10L;
}
RecTab t = new RecTab(r);
try {
st.setORAData(1, t);
st.execute();
} finally {
st.close();
}
System.out.println((ALL_SIZE * 1000L) / (System.currentTimeMillis() - timestamp));
}
private void test_bulk() throws SQLException {
System.out.println("test_bulk:");
OracleCallableStatement st = (OracleCallableStatement)c.prepareCall(BULK_VALUES_SQL);
int oracleId = CharacterSet.CL8MSWIN1251_CHARSET;
CharacterSet charSet = CharacterSet.make(oracleId);
Long timestamp = System.currentTimeMillis();
Long uptime = 0L;
Long inoct = 0L;
RecType r[] = new RecType[ALL_SIZE * 3];
int ix = 0;
for (int i = 1; i <= ALL_SIZE; i++) {
// Передать uptime
r[ix++] = new RecType(
new NUMBER(DEVICE_ID),
new NUMBER(PROFILE_ID),
new NUMBER(UPTIME_PARAM_ID),
new CHAR(FAKE_NUM_VALUE, charSet),
new CHAR(uptime.toString(), charSet));
// Передать имя интерфейса
r[ix++] = new RecType(
new NUMBER(DEVICE_ID),
new NUMBER(PROFILE_ID),
new NUMBER(IFNAME_PARAM_ID),
new CHAR(Integer.toString((i % 100) + 1), charSet),
new CHAR(Integer.toString((i % 100) + 1), charSet));
// Передать счетчик трафика
r[ix++] = new RecType(
new NUMBER(DEVICE_ID),
new NUMBER(PROFILE_ID),
new NUMBER(INOCT_PARAM_ID),
new CHAR(Integer.toString((i % 100) + 1), charSet),
new CHAR(inoct.toString(), charSet));
// Увеличить счетчики
uptime += 100L;
if (uptime >= 1000) {
uptime = 0L;
}
inoct += 10L;
}
RecTab t = new RecTab(r);
try {
st.setORAData(1, t);
st.execute();
} finally {
st.close();
}
System.out.println((ALL_SIZE * 1000L) / (System.currentTimeMillis() - timestamp));
}
private void start() throws ClassNotFoundException, SQLException {
Class.forName(CLASS_NAME);
c = DriverManager.getConnection(USER_CONN, USER_NAME, USER_PASS);
c.setAutoCommit(AUTO_COMMIT_MODE);
}
private void stop() throws SQLException {
if (c != null) {
c.close();
}
}
public static void main(String[] args) {
Test t = new Test();
try {
try {
t.start();
t.test_plsql();
t.test_temporary();
t.test_temporary_distinct();
t.test_collection();
t.test_bulk();
} finally {
t.stop();
}
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
select device_id, profile_id, param_id, num
, max(id) keep (dense_rank last order by datetime) id
, max(value) keep (dense_rank last order by datetime) value
, max(datetime) datetime
from ae_state_tmp
group by device_id, profile_id, param_id, numTKPROF: Release 10.2.0.3.0 - Production on Wed Oct 23 11:54:34 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: plsql.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
begin ae_monitoring.addValue(:1,:2,:3,:4,:5); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3000 4.23 4.13 7 102942 6615 3000
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3001 4.23 4.13 7 102942 6615 3000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 3000 0.00 0.00
SQL*Net message from client 3000 0.00 1.19
latch: library cache 4 0.00 0.00
********************************************************************************
SELECT D.TYPE_ID, R.OWNER_ID
FROM
AE_PROFILE_DETAIL D INNER JOIN AE_RESOURCE_TYPE R ON (R.ID = D.TYPE_ID)
WHERE D.PROFILE_ID = :B2 AND D.PARAM_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3000 0.26 0.26 0 0 0 0
Fetch 3000 0.08 0.07 0 12000 0 3000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6001 0.34 0.33 0 12000 0 3000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
3000 NESTED LOOPS (cr=12000 pr=0 pw=0 time=79652 us)
3000 TABLE ACCESS BY INDEX ROWID AE_PROFILE_DETAIL (cr=6000 pr=0 pw=0 time=43305 us)
3000 INDEX RANGE SCAN AE_PROFILE_DETAIL_PARAM_FK (cr=3000 pr=0 pw=0 time=24348 us)(object id 824918)
3000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE_TYPE (cr=6000 pr=0 pw=0 time=25130 us)
3000 INDEX UNIQUE SCAN AE_RESOURCE_TYPE_PK (cr=3000 pr=0 pw=0 time=11649 us)(object id 823579)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 5.92 5.92
********************************************************************************
SELECT R.ID, R.NAME
FROM
AE_RESOURCE R WHERE R.DEVICE_ID = :B3 AND R.RES_NUM = :B2 AND R.TYPE_ID =
:B1 AND R.START_DATE <= SYSDATE AND SYSDATE <= NVL(R.END_DATE, SYSDATE + 1)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3000 0.34 0.34 0 0 0 0
Fetch 3000 0.14 0.15 0 53000 0 3000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6001 0.48 0.49 0 53000 0 3000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
3000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=53000 pr=0 pw=0 time=155742 us)
102000 INDEX RANGE SCAN AE_RES_DEV_TYPE_FK (cr=50000 pr=0 pw=0 time=173617 us)(object id 823581)
********************************************************************************
SELECT S.VALUE
FROM
AE_STATE S WHERE S.RES_ID = :B2 AND S.PARAM_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.15 0.17 0 0 0 0
Fetch 2000 0.03 0.02 0 7900 0 1899
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.19 0.20 0 7900 0 1899
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1899 TABLE ACCESS BY INDEX ROWID AE_STATE (cr=7900 pr=0 pw=0 time=31492 us)
1899 INDEX RANGE SCAN AE_STATE_RES_FK (cr=6001 pr=0 pw=0 time=19439 us)(object id 813807)
********************************************************************************
SELECT L.TYPE_ID, L.ID
FROM
AE_PARAMETER P INNER JOIN AE_DOMAIN D ON (D.ID = P.DOMAIN_ID) INNER JOIN
AE_STATE_POLICY L ON (L.ID = D.POLICY_ID) WHERE P.ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.11 0.11 0 0 0 0
Fetch 2000 0.04 0.05 0 12000 0 2000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.16 0.17 0 12000 0 2000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2000 NESTED LOOPS (cr=12000 pr=0 pw=0 time=62322 us)
2000 NESTED LOOPS (cr=8000 pr=0 pw=0 time=42519 us)
2000 TABLE ACCESS BY INDEX ROWID AE_PARAMETER (cr=4000 pr=0 pw=0 time=21499 us)
2000 INDEX UNIQUE SCAN AE_PARAMETER_PK (cr=2000 pr=0 pw=0 time=11550 us)(object id 812977)
2000 TABLE ACCESS BY INDEX ROWID AE_DOMAIN (cr=4000 pr=0 pw=0 time=14021 us)
2000 INDEX UNIQUE SCAN AE_DOMAIN_PK (cr=2000 pr=0 pw=0 time=6109 us)(object id 814562)
2000 TABLE ACCESS BY INDEX ROWID AE_STATE_POLICY (cr=4000 pr=0 pw=0 time=12629 us)
2000 INDEX UNIQUE SCAN AE_STATE_POLICY_PK (cr=2000 pr=0 pw=0 time=5458 us)(object id 826206)
********************************************************************************
SELECT COUNT(*)
FROM
AE_THRESHOLD T WHERE T.POLICY_ID = :B6 AND (( T.TYPE_ID = :B5 AND :B1 <=
T.VALUE AND :B2 >= T.VALUE ) OR ( T.TYPE_ID = :B4 AND :B1 >= T.VALUE AND
:B2 <= T.VALUE ) OR ( T.TYPE_ID = :B3 AND ABS(:B2 - :B1 ) >= T.VALUE ))
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.65 0.63 0 0 0 0
Fetch 2000 0.03 0.02 0 3000 0 2000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.69 0.66 0 3000 0 2000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2000 SORT AGGREGATE (cr=3000 pr=0 pw=0 time=37842 us)
900 TABLE ACCESS BY INDEX ROWID AE_THRESHOLD (cr=3000 pr=0 pw=0 time=25375 us)
1000 INDEX RANGE SCAN AE_THRESHOLD_PROFILE_FK (cr=2000 pr=0 pw=0 time=13731 us)(object id 825819)
********************************************************************************
INSERT INTO AE_STATE_LOG(ID, RES_ID, PARAM_ID, VALUE)
VALUES
(AE_STATE_LOG_SEQ.NEXTVAL, :B6 , :B5 , DECODE(:B4 , :B3 , NVL(:B2 , :B1 ),
:B1 ))
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1100 0.31 0.30 5 22 3524 1100
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1101 0.31 0.30 5 22 3524 1100
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1100 SEQUENCE AE_STATE_LOG_SEQ (cr=110 pr=0 pw=0 time=40594 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 5 0.00 0.00
********************************************************************************
UPDATE AE_STATE SET VALUE = :B3 , DATETIME = CURRENT_TIMESTAMP
WHERE
RES_ID = :B2 AND PARAM_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.32 0.31 0 8899 1945 1899
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2001 0.32 0.31 0 8899 1945 1899
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
0 UPDATE AE_STATE (cr=8899 pr=0 pw=0 time=87651 us)
1899 TABLE ACCESS BY INDEX ROWID AE_STATE (cr=8899 pr=0 pw=0 time=37765 us)
1899 INDEX RANGE SCAN AE_STATE_RES_FK (cr=7000 pr=0 pw=0 time=26031 us)(object id 813807)
********************************************************************************
INSERT INTO AE_STATE(ID, PARAM_ID, RES_ID, VALUE)
VALUES
(AE_STATE_SEQ.NEXTVAL, :B3 , :B2 , :B1 )
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 101 0.02 0.02 2 1 1025 101
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 102 0.02 0.02 2 1 1025 101
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
101 SEQUENCE AE_STATE_SEQ (cr=10 pr=0 pw=0 time=4478 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 2 0.00 0.00
********************************************************************************
SELECT R.ID
FROM
AE_RESOURCE R WHERE R.DEVICE_ID = :B2 AND R.TYPE_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.19 0.16 0 0 0 0
Fetch 2000 0.03 0.02 0 6000 0 2000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.23 0.19 0 6000 0 2000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=6000 pr=0 pw=0 time=26524 us)
2000 INDEX RANGE SCAN AE_RES_DEV_TYPE_FK (cr=4000 pr=0 pw=0 time=16514 us)(object id 823581)
********************************************************************************
update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,
cache=:7,highwater=:8,audit$=:9,flags=:10
where
obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 60 0.00 0.00 0 0 0 0
Execute 60 0.02 0.02 0 120 121 60
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 120 0.02 0.02 0 120 121 60
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 UPDATE SEQ$ (cr=2 pr=0 pw=0 time=735 us)
1 INDEX UNIQUE SCAN I_SEQ1 (cr=2 pr=0 pw=0 time=36 us)(object id 102)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3000 4.23 4.13 7 102942 6615 3000
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3001 4.23 4.13 7 102942 6615 3000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 3002 0.00 0.00
SQL*Net message from client 3002 5.92 7.12
latch: library cache 4 0.00 0.00
log file sync 1 0.00 0.00
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 69 0.00 0.00 0 0 0 0
Execute 17261 2.42 2.36 7 9042 6615 3160
Fetch 14000 0.38 0.37 0 93900 0 13899
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 31330 2.81 2.74 7 102942 6615 17059
Misses in library cache during parse: 10
Misses in library cache during execute: 10
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 7 0.00 0.00
10 user SQL statements in session.
60 internal SQL statements in session.
70 SQL statements in session.
********************************************************************************
Trace file: plsql.trc
Trace file compatibility: 10.01.00
Sort options: default
1 session in tracefile.
10 user SQL statements in trace file.
60 internal SQL statements in trace file.
70 SQL statements in trace file.
11 unique SQL statements in trace file.
453925 lines in trace file.
5 elapsed seconds in trace file.
TKPROF: Release 10.2.0.3.0 - Production on Wed Oct 23 12:03:56 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: collection.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
begin :1 := dbms_pickler.get_type_shape(:2,:3,:4,:5,:6,:7); :8 :=
dbms_pickler.get_format(:9); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.01 0.01 0 35 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.01 0.01 0 35 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.04 0.04
********************************************************************************
select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,
i.pctfree$,i.initrans,i.maxtrans,i.blevel,i.leafcnt,i.distkey,i.lblkkey,
i.dblkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i.dataobj#,
nvl(i.degree,1),nvl(i.instances,1),i.rowcnt,mod(i.pctthres$,256),
i.indmethod#,i.trunccnt,nvl(c.unicols,0),nvl(c.deferrable#+c.valid#,0),
nvl(i.spare1,i.intcols),i.spare4,i.spare2,i.spare6,decode(i.pctthres$,null,
null,mod(trunc(i.pctthres$/256),256)),ist.cachedblk,ist.cachehit,
ist.logicalread
from
ind$ i, ind_stats$ ist, (select enabled, min(cols) unicols,
min(to_number(bitand(defer,1))) deferrable#,min(to_number(bitand(defer,4)))
valid# from cdef$ where obj#=:1 and enabled > 1 group by enabled) c where
i.obj#=c.enabled(+) and i.obj# = ist.obj#(+) and i.bo#=:1 order by i.obj#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 8 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 8 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT ORDER BY (cr=8 pr=0 pw=0 time=769 us)
1 HASH JOIN OUTER (cr=8 pr=0 pw=0 time=713 us)
1 NESTED LOOPS OUTER (cr=5 pr=0 pw=0 time=121 us)
1 TABLE ACCESS CLUSTER IND$ (cr=4 pr=0 pw=0 time=100 us)
1 INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=48 us)(object id 3)
0 TABLE ACCESS BY INDEX ROWID IND_STATS$ (cr=1 pr=0 pw=0 time=14 us)
0 INDEX UNIQUE SCAN I_IND_STATS$_OBJ# (cr=1 pr=0 pw=0 time=10 us)(object id 711)
0 VIEW (cr=3 pr=0 pw=0 time=110 us)
0 SORT GROUP BY (cr=3 pr=0 pw=0 time=108 us)
0 TABLE ACCESS CLUSTER CDEF$ (cr=3 pr=0 pw=0 time=59 us)
1 INDEX UNIQUE SCAN I_COBJ# (cr=2 pr=0 pw=0 time=34 us)(object id 30)
********************************************************************************
select pos#,intcol#,col#,spare1,bo#,spare2
from
icol$ where obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 4 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 4 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID ICOL$ (cr=4 pr=0 pw=0 time=57 us)
1 INDEX RANGE SCAN I_ICOL1 (cr=3 pr=0 pw=0 time=67 us)(object id 40)
********************************************************************************
select name,intcol#,segcol#,type#,length,nvl(precision#,0),decode(type#,2,
nvl(scale,-127/*MAXSB1MINAL*/),178,scale,179,scale,180,scale,181,scale,182,
scale,183,scale,231,scale,0),null$,fixedstorage,nvl(deflength,0),default$,
rowid,col#,property, nvl(charsetid,0),nvl(charsetform,0),spare1,spare2,
nvl(spare3,0)
from
col$ where obj#=:1 order by intcol#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 0.00 0.00 0 3 0 3
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6 0.00 0.00 0 3 0 3
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
3 SORT ORDER BY (cr=3 pr=0 pw=0 time=57 us)
3 TABLE ACCESS CLUSTER COL$ (cr=3 pr=0 pw=0 time=27 us)
1 INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=11 us)(object id 3)
********************************************************************************
select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$, spare1,
spare2
from
obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null
and linkname is null and subname is null
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 4 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 4 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=4 pr=0 pw=0 time=77 us)
1 INDEX RANGE SCAN I_OBJ2 (cr=3 pr=0 pw=0 time=59 us)(object id 37)
********************************************************************************
select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#,
sample_size, minimum, maximum, distcnt, lowval, hival, density, col#,
spare1, spare2, avgcln
from
hist_head$ where obj#=:1 and intcol#=:2
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 8 0 2
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 5 0.00 0.00 0 8 0 2
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: RULE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID HIST_HEAD$ (cr=4 pr=0 pw=0 time=107 us)
1 INDEX RANGE SCAN I_HH_OBJ#_INTCOL# (cr=3 pr=0 pw=0 time=85 us)(object id 257)
********************************************************************************
select metadata
from
kopm$ where name='DB_FDO'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 2 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 2 0 1
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID KOPM$ (cr=2 pr=0 pw=0 time=38 us)
1 INDEX UNIQUE SCAN I_KOPM1 (cr=1 pr=0 pw=0 time=21 us)(object id 365)
********************************************************************************
begin :1 := dbms_pickler.get_type_shape(:2,:3,:4,:5,:6,:7); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 3 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 3 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
SELECT INSTANTIABLE, supertype_owner, supertype_name, LOCAL_ATTRIBUTES
FROM
all_types WHERE type_name = :1 AND owner = :2
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.01 0 2 0 0
Fetch 1 0.00 0.00 0 9 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.01 0 11 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977
Rows Row Source Operation
------- ---------------------------------------------------
1 VIEW ALL_TYPES (cr=9 pr=0 pw=0 time=327 us)
1 SORT UNIQUE (cr=9 pr=0 pw=0 time=322 us)
1 UNION-ALL (cr=9 pr=0 pw=0 time=280 us)
1 FILTER (cr=9 pr=0 pw=0 time=262 us)
1 NESTED LOOPS OUTER (cr=9 pr=0 pw=0 time=252 us)
1 NESTED LOOPS OUTER (cr=9 pr=0 pw=0 time=242 us)
1 NESTED LOOPS (cr=9 pr=0 pw=0 time=233 us)
1 NESTED LOOPS (cr=6 pr=0 pw=0 time=130 us)
1 TABLE ACCESS BY INDEX ROWID USER$ (cr=2 pr=0 pw=0 time=52 us)
1 INDEX UNIQUE SCAN I_USER1 (cr=1 pr=0 pw=0 time=29 us)(object id 44)
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=4 pr=0 pw=0 time=75 us)
1 INDEX RANGE SCAN I_OBJ2 (cr=3 pr=0 pw=0 time=46 us)(object id 37)
1 TABLE ACCESS BY INDEX ROWID TYPE$ (cr=3 pr=0 pw=0 time=98 us)
1 INDEX UNIQUE SCAN I_TYPE2 (cr=2 pr=0 pw=0 time=75 us)(object id 185)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=4 us)
0 INDEX RANGE SCAN I_OBJ3 (cr=0 pr=0 pw=0 time=2 us)(object id 38)
0 TABLE ACCESS CLUSTER USER$ (cr=0 pr=0 pw=0 time=5 us)
0 INDEX UNIQUE SCAN I_USER# (cr=0 pr=0 pw=0 time=2 us)(object id 11)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us)(object id 103)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us)
0 FILTER (cr=0 pr=0 pw=0 time=4 us)
0 FILTER (cr=0 pr=0 pw=0 time=2 us)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us)
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX SKIP SCAN I_OBJ2 (cr=0 pr=0 pw=0 time=0 us)(object id 37)
0 TABLE ACCESS BY INDEX ROWID TYPE$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN I_TYPE2 (cr=0 pr=0 pw=0 time=0 us)(object id 185)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us)
0 INDEX FULL SCAN I_USER1 (cr=0 pr=0 pw=0 time=0 us)(object id 44)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN I_OBJ3 (cr=0 pr=0 pw=0 time=0 us)(object id 38)
0 TABLE ACCESS CLUSTER USER$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN I_USER# (cr=0 pr=0 pw=0 time=0 us)(object id 11)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us)(object id 103)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.06 0.06
********************************************************************************
select text
from
view$ where rowid=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 1 2 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 1 2 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY USER ROWID VIEW$ (cr=1 pr=1 pw=0 time=706 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.00 0.00
********************************************************************************
begin ae_monitoring.addValues(:1); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 4.33 4.27 5 136013 6610 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 4.33 4.27 5 136013 6610 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net more data from client 41 0.00 0.00
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
SELECT D.TYPE_ID, R.OWNER_ID
FROM
AE_PROFILE_DETAIL D INNER JOIN AE_RESOURCE_TYPE R ON (R.ID = D.TYPE_ID)
WHERE D.PROFILE_ID = :B2 AND D.PARAM_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3000 0.32 0.35 0 0 0 0
Fetch 3000 0.08 0.08 0 12000 0 3000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6001 0.41 0.44 0 12000 0 3000
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
3000 NESTED LOOPS (cr=12000 pr=0 pw=0 time=93428 us)
3000 TABLE ACCESS BY INDEX ROWID AE_PROFILE_DETAIL (cr=6000 pr=0 pw=0 time=49225 us)
3000 INDEX RANGE SCAN AE_PROFILE_DETAIL_PARAM_FK (cr=3000 pr=0 pw=0 time=27427 us)(object id 824918)
3000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE_TYPE (cr=6000 pr=0 pw=0 time=30294 us)
3000 INDEX UNIQUE SCAN AE_RESOURCE_TYPE_PK (cr=3000 pr=0 pw=0 time=14086 us)(object id 823579)
********************************************************************************
SELECT R.ID, R.NAME
FROM
AE_RESOURCE R WHERE R.DEVICE_ID = :B3 AND R.RES_NUM = :B2 AND R.TYPE_ID =
:B1 AND R.START_DATE <= SYSDATE AND SYSDATE <= NVL(R.END_DATE, SYSDATE + 1)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3000 0.44 0.42 0 0 0 0
Fetch 3000 0.22 0.23 0 89000 0 3000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6001 0.67 0.65 0 89000 0 3000
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
3000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=89000 pr=0 pw=0 time=231911 us)
102000 INDEX RANGE SCAN AE_RES_DEV_TYPE_FK (cr=86000 pr=0 pw=0 time=257510 us)(object id 823581)
********************************************************************************
SELECT S.VALUE
FROM
AE_STATE S WHERE S.RES_ID = :B2 AND S.PARAM_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.20 0.20 0 0 0 0
Fetch 2000 0.02 0.03 0 5899 0 1899
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.22 0.23 0 5899 0 1899
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1899 TABLE ACCESS BY INDEX ROWID AE_STATE (cr=5899 pr=0 pw=0 time=32257 us)
1899 INDEX RANGE SCAN AE_STATE_RES_FK (cr=4000 pr=0 pw=0 time=17739 us)(object id 813807)
********************************************************************************
SELECT L.TYPE_ID, L.ID
FROM
AE_PARAMETER P INNER JOIN AE_DOMAIN D ON (D.ID = P.DOMAIN_ID) INNER JOIN
AE_STATE_POLICY L ON (L.ID = D.POLICY_ID) WHERE P.ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.14 0.14 0 0 0 0
Fetch 2000 0.07 0.07 0 12000 0 2000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.21 0.21 0 12000 0 2000
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2000 NESTED LOOPS (cr=12000 pr=0 pw=0 time=76757 us)
2000 NESTED LOOPS (cr=8000 pr=0 pw=0 time=52247 us)
2000 TABLE ACCESS BY INDEX ROWID AE_PARAMETER (cr=4000 pr=0 pw=0 time=26209 us)
2000 INDEX UNIQUE SCAN AE_PARAMETER_PK (cr=2000 pr=0 pw=0 time=13964 us)(object id 812977)
2000 TABLE ACCESS BY INDEX ROWID AE_DOMAIN (cr=4000 pr=0 pw=0 time=17395 us)
2000 INDEX UNIQUE SCAN AE_DOMAIN_PK (cr=2000 pr=0 pw=0 time=7485 us)(object id 814562)
2000 TABLE ACCESS BY INDEX ROWID AE_STATE_POLICY (cr=4000 pr=0 pw=0 time=15696 us)
2000 INDEX UNIQUE SCAN AE_STATE_POLICY_PK (cr=2000 pr=0 pw=0 time=6738 us)(object id 826206)
********************************************************************************
SELECT COUNT(*)
FROM
AE_THRESHOLD T WHERE T.POLICY_ID = :B6 AND (( T.TYPE_ID = :B5 AND :B1 <=
T.VALUE AND :B2 >= T.VALUE ) OR ( T.TYPE_ID = :B4 AND :B1 >= T.VALUE AND
:B2 <= T.VALUE ) OR ( T.TYPE_ID = :B3 AND ABS(:B2 - :B1 ) >= T.VALUE ))
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.82 0.78 0 0 0 0
Fetch 2000 0.03 0.03 0 3000 0 2000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.85 0.81 0 3000 0 2000
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2000 SORT AGGREGATE (cr=3000 pr=0 pw=0 time=45744 us)
900 TABLE ACCESS BY INDEX ROWID AE_THRESHOLD (cr=3000 pr=0 pw=0 time=30904 us)
1000 INDEX RANGE SCAN AE_THRESHOLD_PROFILE_FK (cr=2000 pr=0 pw=0 time=16924 us)(object id 825819)
********************************************************************************
INSERT INTO AE_STATE_LOG(ID, RES_ID, PARAM_ID, VALUE)
VALUES
(AE_STATE_LOG_SEQ.NEXTVAL, :B6 , :B5 , DECODE(:B4 , :B3 , NVL(:B2 , :B1 ),
:B1 ))
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1100 0.37 0.37 5 24 3515 1100
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1101 0.37 0.37 5 24 3515 1100
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1100 SEQUENCE AE_STATE_LOG_SEQ (cr=110 pr=0 pw=0 time=46015 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 5 0.00 0.00
********************************************************************************
update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,
cache=:7,highwater=:8,audit$=:9,flags=:10
where
obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 60 0.00 0.00 0 0 0 0
Execute 60 0.03 0.02 0 120 121 60
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 120 0.03 0.02 0 120 121 60
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 UPDATE SEQ$ (cr=2 pr=0 pw=0 time=330 us)
1 INDEX UNIQUE SCAN I_SEQ1 (cr=2 pr=0 pw=0 time=35 us)(object id 102)
********************************************************************************
UPDATE AE_STATE SET VALUE = :B3 , DATETIME = CURRENT_TIMESTAMP
WHERE
RES_ID = :B2 AND PARAM_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.39 0.37 0 5899 1945 1899
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2001 0.39 0.37 0 5899 1945 1899
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
0 UPDATE AE_STATE (cr=5899 pr=0 pw=0 time=97694 us)
1899 TABLE ACCESS BY INDEX ROWID AE_STATE (cr=5899 pr=0 pw=0 time=36393 us)
1899 INDEX RANGE SCAN AE_STATE_RES_FK (cr=4000 pr=0 pw=0 time=22106 us)(object id 813807)
********************************************************************************
INSERT INTO AE_STATE(ID, PARAM_ID, RES_ID, VALUE)
VALUES
(AE_STATE_SEQ.NEXTVAL, :B3 , :B2 , :B1 )
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 101 0.02 0.02 0 3 1028 101
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 102 0.02 0.02 0 3 1028 101
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
101 SEQUENCE AE_STATE_SEQ (cr=10 pr=0 pw=0 time=5015 us)
********************************************************************************
SELECT R.ID
FROM
AE_RESOURCE R WHERE R.DEVICE_ID = :B2 AND R.TYPE_ID = :B1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 2000 0.19 0.20 0 0 0 0
Fetch 2000 0.05 0.03 0 8000 0 2000
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4001 0.24 0.24 0 8000 0 2000
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=8000 pr=0 pw=0 time=40457 us)
2000 INDEX RANGE SCAN AE_RES_DEV_TYPE_FK (cr=6000 pr=0 pw=0 time=27874 us)(object id 823581)
********************************************************************************
COMMIT WRITE NOWAIT
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 1 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 1 0
Misses in library cache during parse: 0
Parsing user id: 977 (recursive depth: 1)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 4 0.00 0.00 0 0 0 0
Execute 4 4.35 4.31 5 136053 6610 3
Fetch 1 0.00 0.00 0 9 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 9 4.35 4.31 5 136062 6610 4
Misses in library cache during parse: 2
Misses in library cache during execute: 2
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 6 0.00 0.00
SQL*Net message from client 6 0.23 0.34
SQL*Net more data from client 41 0.00 0.00
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 77 0.00 0.00 0 0 0 0
Execute 17270 2.97 2.92 5 6046 6610 3160
Fetch 14013 0.49 0.49 1 129930 0 13909
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 31360 3.48 3.43 6 135976 6610 17069
Misses in library cache during parse: 8
Misses in library cache during execute: 11
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 6 0.00 0.00
14 user SQL statements in session.
68 internal SQL statements in session.
82 SQL statements in session.
********************************************************************************
Trace file: collection.trc
Trace file compatibility: 10.01.00
Sort options: default
1 session in tracefile.
14 user SQL statements in trace file.
68 internal SQL statements in trace file.
82 SQL statements in trace file.
22 unique SQL statements in trace file.
364287 lines in trace file.
4 elapsed seconds in trace file.
TKPROF: Release 10.2.0.3.0 - Production on Wed Oct 23 11:56:53 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: temporary.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
The following statements encountered a error during parse:
SELECT 1 FROM DUAL WHERE d.device_id = s.device_id and d.profile_id = s.profile_id and d.param_id = s.param_id and d.num = s.num
Error encountered: ORA-00904
--------------------------------------------------------------------------------
SELECT 1 FROM DUAL WHERE D.DEVICE_ID = S.DEVICE_ID AND D.RES_NUM = S.NUM AND D.TYPE_ID = S.TYPE_ID AND D.START_DATE <= SYSDATE AND SYSDATE <= NVL(D.END_DATE, SYSDATE + 1)
Error encountered: ORA-00904
--------------------------------------------------------------------------------
SELECT 1 FROM DUAL WHERE D.RES_ID = S.RES_ID AND D.PARAM_ID = S.PARAM_I
Error encountered: ORA-00904
********************************************************************************
merge into ae_state_tmp d using ( select :1 id,:2 device_id,:3 profile_id,:4
param_id,:5 num,:6 value from dual ) s on ( d.device_id =
s.device_id and d.profile_id = s.profile_id and d.param_id =
s.param_id and d.num = s.num ) when matched then update set d.value =
s.value when not matched then insert (id, device_id, profile_id, param_id,
num, value) values (s.id, s.device_id, s.profile_id, s.param_id, s.num,
s.value)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1000 1.02 1.01 0 9002 3503 3000
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1001 1.02 1.01 0 9002 3503 3000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977
Rows Row Source Operation
------- ---------------------------------------------------
6000 MERGE AE_STATE_TMP (cr=9011 pr=0 pw=0 time=247489 us)
3000 VIEW (cr=9000 pr=0 pw=0 time=152643 us)
3000 NESTED LOOPS OUTER (cr=9000 pr=0 pw=0 time=142098 us)
3000 FAST DUAL (cr=0 pr=0 pw=0 time=6854 us)
2799 TABLE ACCESS FULL AE_STATE_TMP (cr=9000 pr=0 pw=0 time=121548 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1000 0.00 0.00
SQL*Net message from client 1000 0.00 0.41
********************************************************************************
select file#
from
file$ where ts#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 5 0.00 0.00 0 9 0 4
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 7 0.00 0.00 0 9 0 4
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
4 TABLE ACCESS BY INDEX ROWID FILE$ (cr=9 pr=0 pw=0 time=57 us)
4 INDEX RANGE SCAN I_FILE2 (cr=5 pr=0 pw=0 time=44 us)(object id 42)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
begin ae_monitoring.saveValues; end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
MERGE INTO AE_RESOURCE D USING ( SELECT T.ID, T.DEVICE_ID, T.NUM, DECODE(O.ID,
NULL, T.NUM, T.VALUE) NAME, P.TYPE_ID, O.ID OWNER_ID FROM AE_STATE_TMP T
INNER JOIN AE_PROFILE_DETAIL P ON (P.PROFILE_ID = T.PROFILE_ID AND
P.PARAM_ID = T.PARAM_ID) INNER JOIN AE_RESOURCE_TYPE R ON (R.ID = P.TYPE_ID)
LEFT JOIN AE_RESOURCE O ON (O.DEVICE_ID = T.DEVICE_ID AND O.TYPE_ID =
R.OWNER_ID) WHERE T.PARAM_ID = :B1 OR O.ID IS NULL ) S ON ( D.DEVICE_ID =
S.DEVICE_ID AND D.RES_NUM = S.NUM AND D.TYPE_ID = S.TYPE_ID AND
D.START_DATE <= SYSDATE AND SYSDATE <= NVL(D.END_DATE, SYSDATE + 1) ) WHEN
MATCHED THEN UPDATE SET D.TMP_ID = S.ID WHERE D.NAME <> S.NAME WHEN NOT
MATCHED THEN INSERT (ID, DEVICE_ID, OWNER_ID, TYPE_ID, RES_NUM, NAME)
VALUES (AE_RESOURCE_SEQ.NEXTVAL, S.DEVICE_ID, S.OWNER_ID, S.TYPE_ID, S.NUM,
S.NAME)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.09 0.10 43 19314 9 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.09 0.10 43 19314 9 0
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2 MERGE AE_RESOURCE (cr=19322 pr=43 pw=0 time=95507 us)
101 VIEW (cr=19322 pr=43 pw=0 time=42246 us)
101 SEQUENCE AE_RESOURCE_SEQ (cr=19322 pr=43 pw=0 time=41342 us)
101 FILTER (cr=19312 pr=43 pw=0 time=40413 us)
201 NESTED LOOPS OUTER (cr=19312 pr=43 pw=0 time=76907 us)
201 NESTED LOOPS OUTER (cr=9662 pr=22 pw=0 time=49248 us)
201 VIEW (cr=12 pr=4 pw=0 time=16093 us)
201 HASH JOIN (cr=12 pr=4 pw=0 time=15692 us)
6 MERGE JOIN (cr=9 pr=4 pw=0 time=13964 us)
2 TABLE ACCESS BY INDEX ROWID AE_RESOURCE_TYPE (cr=2 pr=0 pw=0 time=53 us)
2 INDEX FULL SCAN AE_RESOURCE_TYPE_PK (cr=1 pr=0 pw=0 time=27 us)(object id 823579)
6 SORT JOIN (cr=7 pr=4 pw=0 time=13911 us)
6 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=4 pw=0 time=13562 us)
201 TABLE ACCESS FULL AE_STATE_TMP (cr=3 pr=0 pw=0 time=430 us)
201 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=9650 pr=18 pw=0 time=24101 us)
20301 INDEX RANGE SCAN AE_RES_DEV_FK (cr=9248 pr=18 pw=0 time=9377 us)(object id 823580)
200 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=9650 pr=21 pw=0 time=29764 us)
20301 INDEX RANGE SCAN AE_RES_DEV_FK (cr=9248 pr=21 pw=0 time=7695 us)(object id 823580)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 41 0.01 0.01
db file scattered read 1 0.00 0.00
********************************************************************************
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1"), COUNT(DISTINCT C3), NVL(SUM(CASE WHEN C3 IS NULL
THEN :"SYS_B_2" ELSE :"SYS_B_3" END),:"SYS_B_4")
FROM
(SELECT /*+ NO_PARALLEL("T") FULL("T") NO_PARALLEL_INDEX("T") */ :"SYS_B_5"
AS C1, :"SYS_B_6" AS C2, "T"."PROFILE_ID" AS C3 FROM "AE_STATE_TMP" "T")
SAMPLESUB
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 3 0.00 0.00 0 0 0 0
Execute 3 0.00 0.00 0 0 0 0
Fetch 3 0.00 0.00 0 9 0 3
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 9 0.00 0.00 0 9 0 3
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT GROUP BY (cr=3 pr=0 pw=0 time=212 us)
201 TABLE ACCESS FULL AE_STATE_TMP (cr=3 pr=0 pw=0 time=241 us)
********************************************************************************
update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,
cache=:7,highwater=:8,audit$=:9,flags=:10
where
obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 10 0.00 0.00 0 0 0 0
Execute 10 0.00 0.00 0 20 21 10
Fetch 0 0.00 0.00 0 0 0 0
------- ------ SELECT INSTANTIABLE, supertype_owner, supertype_name, LOCAL_ATTRIBUTES
FROM
all_types WHERE type_name = :1 AND owner = :2
...
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX SKIP SCAN I_OBJ2 (cr=0 pr=0 pw=0 time=0 us)(object id 37)
0 TABLE ACCESS BY INDEX ROWID TYPE$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN I_TYPE2 (cr=0 pr=0 pw=0 time=0 us)(object id 185)
TKPROF: Release 10.2.0.3.0 - Production on Wed Oct 23 12:01:38 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: distinct.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
The following statements encountered a error during parse:
SELECT 1 FROM DUAL WHERE D.DEVICE_ID = S.DEVICE_ID AND D.RES_NUM = S.NUM AND D.TYPE_ID = S.TYPE_ID AND D.START_DATE <= SYSDATE AND SYSDATE <= NVL(D.END_DATE, SYSDATE + 1)
Error encountered: ORA-00904
--------------------------------------------------------------------------------
SELECT 1 FROM DUAL WHERE D.RES_ID = S.RES_ID AND D.PARAM_ID = S.PARAM_I
Error encountered: ORA-00904
********************************************************************************
insert into ae_state_tmp(id, device_id, profile_id, param_id, num, value)
values
(:1,:2,:3,:4,:5,:6)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1000 0.36 0.33 0 96 6616 3000
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1001 0.36 0.33 0 96 6616 3000
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1000 0.00 0.00
SQL*Net message from client 1000 0.00 0.40
********************************************************************************
begin ae_monitoring.saveValuesDistinct; end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.00 0.00
********************************************************************************
MERGE INTO AE_RESOURCE D USING ( SELECT T.ID, T.DEVICE_ID, T.NUM, DECODE(O.ID,
NULL, T.NUM, T.VALUE) NAME, P.TYPE_ID, O.ID OWNER_ID FROM ( SELECT
DEVICE_ID, PROFILE_ID, PARAM_ID, NUM , MAX(ID) KEEP (DENSE_RANK LAST ORDER
BY DATETIME) ID , MAX(VALUE) KEEP (DENSE_RANK LAST ORDER BY DATETIME) VALUE
, MAX(DATETIME) DATETIME FROM AE_STATE_TMP GROUP BY DEVICE_ID, PROFILE_ID,
PARAM_ID, NUM ) T INNER JOIN AE_PROFILE_DETAIL P ON (P.PROFILE_ID =
T.PROFILE_ID AND P.PARAM_ID = T.PARAM_ID) INNER JOIN AE_RESOURCE_TYPE R ON
(R.ID = P.TYPE_ID) LEFT JOIN AE_RESOURCE O ON (O.DEVICE_ID = T.DEVICE_ID
AND O.TYPE_ID = R.OWNER_ID) WHERE T.PARAM_ID = :B1 OR O.ID IS NULL ) S ON (
D.DEVICE_ID = S.DEVICE_ID AND D.RES_NUM = S.NUM AND D.TYPE_ID = S.TYPE_ID
AND D.START_DATE <= SYSDATE AND SYSDATE <= NVL(D.END_DATE, SYSDATE + 1) )
WHEN MATCHED THEN UPDATE SET D.TMP_ID = S.ID WHERE D.NAME <> S.NAME WHEN
NOT MATCHED THEN INSERT (ID, DEVICE_ID, OWNER_ID, TYPE_ID, RES_NUM, NAME)
VALUES (AE_RESOURCE_SEQ.NEXTVAL, S.DEVICE_ID, S.OWNER_ID, S.TYPE_ID, S.NUM,
S.NAME)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.03 0.02 0 185 10 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.03 0.03 0 185 10 0
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2 MERGE AE_RESOURCE (cr=195 pr=0 pw=0 time=16754 us)
101 VIEW (cr=195 pr=0 pw=0 time=15449 us)
101 SEQUENCE AE_RESOURCE_SEQ (cr=195 pr=0 pw=0 time=14346 us)
101 FILTER (cr=183 pr=0 pw=0 time=12655 us)
201 HASH JOIN RIGHT OUTER (cr=183 pr=0 pw=0 time=13552 us)
101 TABLE ACCESS FULL AE_RESOURCE (cr=76 pr=0 pw=0 time=39719 us)
201 HASH JOIN RIGHT OUTER (cr=107 pr=0 pw=0 time=11358 us)
101 TABLE ACCESS FULL AE_RESOURCE (cr=76 pr=0 pw=0 time=9949 us)
201 VIEW (cr=31 pr=0 pw=0 time=9070 us)
201 HASH JOIN (cr=31 pr=0 pw=0 time=8667 us)
6 MERGE JOIN (cr=9 pr=0 pw=0 time=192 us)
2 TABLE ACCESS BY INDEX ROWID AE_RESOURCE_TYPE (cr=2 pr=0 pw=0 time=52 us)
2 INDEX FULL SCAN AE_RESOURCE_TYPE_PK (cr=1 pr=0 pw=0 time=25 us)(object id 823579)
6 SORT JOIN (cr=7 pr=0 pw=0 time=131 us)
6 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=0 pw=0 time=42 us)
201 VIEW (cr=22 pr=0 pw=0 time=7041 us)
201 SORT GROUP BY (cr=22 pr=0 pw=0 time=6838 us)
3000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=31 us)
********************************************************************************
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1")
FROM
(SELECT /*+ NO_PARALLEL("AE_STATE_TMP") FULL("AE_STATE_TMP")
NO_PARALLEL_INDEX("AE_STATE_TMP") */ :"SYS_B_2" AS C1, :"SYS_B_3" AS C2
FROM "AE_STATE_TMP" "AE_STATE_TMP") SAMPLESUB
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 4 0.00 0.00 0 0 0 0
Execute 4 0.00 0.00 0 0 0 0
Fetch 4 0.00 0.00 0 88 0 4
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 12 0.00 0.00 0 88 0 4
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=22 pr=0 pw=0 time=645 us)
3000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=61 us)
********************************************************************************
update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,
cache=:7,highwater=:8,audit$=:9,flags=:10
where
obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 16 0.00 0.00 0 0 0 0
Execute 16 0.00 0.00 0 32 32 16
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 32 0.00 0.00 0 32 32 16
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 UPDATE SEQ$ (cr=2 pr=0 pw=0 time=244 us)
1 INDEX UNIQUE SCAN I_SEQ1 (cr=2 pr=0 pw=0 time=42 us)(object id 102)
********************************************************************************
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1"), COUNT(DISTINCT C3), NVL(SUM(CASE WHEN C3 IS NULL
THEN :"SYS_B_2" ELSE :"SYS_B_3" END),:"SYS_B_4")
FROM
(SELECT /*+ NO_PARALLEL("AE_STATE_TMP") FULL("AE_STATE_TMP")
NO_PARALLEL_INDEX("AE_STATE_TMP") */ :"SYS_B_5" AS C1, :"SYS_B_6" AS C2,
"AE_STATE_TMP"."PROFILE_ID" AS C3 FROM "AE_STATE_TMP" "AE_STATE_TMP")
SAMPLESUB
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 22 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 22 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT GROUP BY (cr=22 pr=0 pw=0 time=1572 us)
3000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=26 us)
********************************************************************************
INSERT INTO AE_RESOURCE(ID, DEVICE_ID, OWNER_ID, TYPE_ID, RES_NUM, NAME)
SELECT AE_RESOURCE_SEQ.NEXTVAL, T.DEVICE_ID, O.ID, P.TYPE_ID, T.NUM,
T.VALUE FROM ( SELECT DEVICE_ID, PROFILE_ID, PARAM_ID, NUM , MAX(ID) KEEP
(DENSE_RANK LAST ORDER BY DATETIME) ID , MAX(VALUE) KEEP (DENSE_RANK LAST
ORDER BY DATETIME) VALUE , MAX(DATETIME) DATETIME FROM AE_STATE_TMP GROUP
BY DEVICE_ID, PROFILE_ID, PARAM_ID, NUM ) T INNER JOIN AE_RESOURCE C ON
(C.TMP_ID = T.ID) INNER JOIN AE_PROFILE_DETAIL P ON (P.PROFILE_ID =
T.PROFILE_ID AND P.PARAM_ID = T.PARAM_ID) INNER JOIN AE_RESOURCE_TYPE R ON
(R.ID = P.TYPE_ID) LEFT JOIN AE_RESOURCE O ON (O.DEVICE_ID = T.DEVICE_ID
AND O.TYPE_ID = R.OWNER_ID)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.01 0.01 0 3 0 0
Execute 1 0.00 0.00 0 24 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.01 0.02 0 27 0 0
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
0 SEQUENCE AE_RESOURCE_SEQ (cr=24 pr=0 pw=0 time=7120 us)
0 NESTED LOOPS OUTER (cr=24 pr=0 pw=0 time=7111 us)
0 VIEW (cr=24 pr=0 pw=0 time=7108 us)
0 NESTED LOOPS (cr=24 pr=0 pw=0 time=7105 us)
0 NESTED LOOPS (cr=24 pr=0 pw=0 time=7104 us)
0 NESTED LOOPS (cr=24 pr=0 pw=0 time=7101 us)
201 VIEW (cr=22 pr=0 pw=0 time=6932 us)
201 SORT GROUP BY (cr=22 pr=0 pw=0 time=6529 us)
3000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=26 us)
0 INDEX RANGE SCAN AE_RES_DEV_RES_TMP_FK (cr=2 pr=0 pw=0 time=465 us)(object id 826402)
0 TABLE ACCESS BY INDEX ROWID AE_PROFILE_DETAIL (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN AE_PROFILE_DETAIL_PARAM_FK (cr=0 pr=0 pw=0 time=0 us)(object id 824918)
0 TABLE ACCESS BY INDEX ROWID AE_RESOURCE_TYPE (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN AE_RESOURCE_TYPE_PK (cr=0 pr=0 pw=0 time=0 us)(object id 823579)
0 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN AE_RES_DEV_TYPE_FK (cr=0 pr=0 pw=0 time=0 us)(object id 823581)
********************************************************************************
UPDATE AE_RESOURCE SET END_DATE = SYSDATE , TMP_ID = NULL
WHERE
TMP_ID > 0
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 1 0 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 1 0 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
0 UPDATE AE_RESOURCE (cr=1 pr=0 pw=0 time=31 us)
0 INDEX RANGE SCAN AE_RES_DEV_RES_TMP_FK (cr=1 pr=0 pw=0 time=16 us)(object id 826402)
********************************************************************************
INSERT INTO AE_STATE_LOG(ID, RES_ID, PARAM_ID, VALUE) SELECT
AE_STATE_LOG_SEQ.NEXTVAL, ID, PARAM_ID, VALUE FROM ( SELECT DISTINCT R.ID,
T.PARAM_ID, DECODE(L.TYPE_ID, :B6 , NVL(S.VALUE, T.VALUE), T.VALUE) VALUE
FROM ( SELECT DEVICE_ID, PROFILE_ID, PARAM_ID, NUM , MAX(ID) KEEP
(DENSE_RANK LAST ORDER BY DATETIME) ID , MAX(VALUE) KEEP (DENSE_RANK LAST
ORDER BY DATETIME) VALUE , MAX(DATETIME) DATETIME FROM AE_STATE_TMP GROUP
BY DEVICE_ID, PROFILE_ID, PARAM_ID, NUM ) T INNER JOIN AE_PROFILE_DETAIL P
ON (P.PROFILE_ID = T.PROFILE_ID AND P.PARAM_ID = T.PARAM_ID) INNER JOIN
AE_RESOURCE R ON ( R.DEVICE_ID = T.DEVICE_ID AND R.RES_NUM = T.NUM AND
R.TYPE_ID = P.TYPE_ID AND R.START_DATE <= SYSDATE AND SYSDATE <=
NVL(R.END_DATE, SYSDATE + 1)) LEFT JOIN AE_STATE S ON (S.RES_ID = R.ID AND
S.PARAM_ID = T.PARAM_ID) INNER JOIN AE_PARAMETER A ON (A.ID = P.PARAM_ID)
INNER JOIN AE_DOMAIN D ON (D.ID = A.DOMAIN_ID) INNER JOIN AE_STATE_POLICY L
ON (L.ID = D.POLICY_ID) LEFT JOIN AE_THRESHOLD H ON ( H.POLICY_ID = L.ID
AND (( H.TYPE_ID = :B3 AND S.VALUE <= H.VALUE AND T.VALUE >= H.VALUE ) OR (
H.TYPE_ID = :B2 AND S.VALUE >= H.VALUE AND T.VALUE <= H.VALUE ) OR (
H.TYPE_ID = :B1 AND ABS(T.VALUE - S.VALUE) >= H.VALUE ))) WHERE ( S.ID IS
NULL OR NOT H.ID IS NULL OR ( L.TYPE_ID = :B6 AND T.VALUE < S.VALUE ) OR (
L.TYPE_ID = :B5 AND T.VALUE <> S.VALUE ) ) AND T.PARAM_ID <> :B4 )
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.34 0.33 3 48582 41 101
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.34 0.33 3 48582 41 101
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
101 SEQUENCE AE_STATE_LOG_SEQ (cr=48555 pr=0 pw=0 time=382497 us)
101 VIEW (cr=48545 pr=0 pw=0 time=301374 us)
101 SORT UNIQUE (cr=48545 pr=0 pw=0 time=301170 us)
101 FILTER (cr=48545 pr=0 pw=0 time=305839 us)
101 NESTED LOOPS OUTER (cr=48545 pr=0 pw=0 time=305636 us)
101 NESTED LOOPS (cr=48443 pr=0 pw=0 time=301913 us)
101 NESTED LOOPS (cr=48340 pr=0 pw=0 time=300190 us)
101 NESTED LOOPS (cr=48237 pr=0 pw=0 time=298864 us)
101 NESTED LOOPS OUTER (cr=48134 pr=0 pw=0 time=297528 us)
101 VIEW (cr=48031 pr=0 pw=0 time=295688 us)
101 SORT GROUP BY (cr=48031 pr=0 pw=0 time=295586 us)
2000 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=48031 pr=0 pw=0 time=272207 us)
103001 NESTED LOOPS (cr=46031 pr=0 pw=0 time=206642 us)
2000 HASH JOIN (cr=29 pr=0 pw=0 time=8271 us)
5 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=0 pw=0 time=43 us)
2000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=2035 us)
101000 INDEX RANGE SCAN AE_RES_DEV_TYPE_FK (cr=46002 pr=0 pw=0 time=68456 us)(object id 823581)
0 TABLE ACCESS BY INDEX ROWID AE_STATE (cr=103 pr=0 pw=0 time=894 us)
0 INDEX RANGE SCAN AE_STATE_RES_FK (cr=103 pr=0 pw=0 time=644 us)(object id 813807)
101 TABLE ACCESS BY INDEX ROWID AE_PARAMETER (cr=103 pr=0 pw=0 time=918 us)
101 INDEX UNIQUE SCAN AE_PARAMETER_PK (cr=2 pr=0 pw=0 time=340 us)(object id 812977)
101 TABLE ACCESS BY INDEX ROWID AE_DOMAIN (cr=103 pr=0 pw=0 time=767 us)
101 INDEX UNIQUE SCAN AE_DOMAIN_PK (cr=2 pr=0 pw=0 time=302 us)(object id 814562)
101 TABLE ACCESS BY INDEX ROWID AE_STATE_POLICY (cr=103 pr=0 pw=0 time=776 us)
101 INDEX UNIQUE SCAN AE_STATE_POLICY_PK (cr=2 pr=0 pw=0 time=312 us)(object id 826206)
0 VIEW (cr=102 pr=0 pw=0 time=1369 us)
0 TABLE ACCESS BY INDEX ROWID AE_THRESHOLD (cr=102 pr=0 pw=0 time=1131 us)
100 INDEX RANGE SCAN AE_THRESHOLD_PROFILE_FK (cr=2 pr=0 pw=0 time=436 us)(object id 825819)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 3 0.00 0.00
********************************************************************************
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),0), NVL(SUM(C2),0),
COUNT(DISTINCT C3), NVL(SUM(CASE WHEN C3 IS NULL THEN 1 ELSE 0 END),0)
FROM
(SELECT /*+ IGNORE_WHERE_CLAUSE NO_PARALLEL("AE_STATE_TMP")
FULL("AE_STATE_TMP") NO_PARALLEL_INDEX("AE_STATE_TMP") */ 1 AS C1, CASE
WHEN "AE_STATE_TMP"."PARAM_ID"<>:B1 THEN 1 ELSE 0 END AS C2,
"AE_STATE_TMP"."DEVICE_ID" AS C3 FROM "AE_STATE_TMP" "AE_STATE_TMP")
SAMPLESUB
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 22 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 22 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT GROUP BY (cr=22 pr=0 pw=0 time=2089 us)
3000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=27 us)
********************************************************************************
MERGE INTO AE_STATE D USING ( SELECT T.PARAM_ID, T.VALUE, R.ID RES_ID FROM (
SELECT DEVICE_ID, PROFILE_ID, PARAM_ID, NUM , MAX(ID) KEEP (DENSE_RANK LAST
ORDER BY DATETIME) ID , MAX(VALUE) KEEP (DENSE_RANK LAST ORDER BY DATETIME)
VALUE , MAX(DATETIME) DATETIME FROM AE_STATE_TMP GROUP BY DEVICE_ID,
PROFILE_ID, PARAM_ID, NUM ) T INNER JOIN AE_PROFILE_DETAIL P ON
(P.PROFILE_ID = T.PROFILE_ID AND P.PARAM_ID = T.PARAM_ID) INNER JOIN
AE_RESOURCE R ON ( R.DEVICE_ID = T.DEVICE_ID AND R.RES_NUM = T.NUM AND
R.TYPE_ID = P.TYPE_ID AND R.START_DATE <= SYSDATE AND SYSDATE <=
NVL(R.END_DATE, SYSDATE + 1)) WHERE T.PARAM_ID <> :B1 ) S ON (D.RES_ID =
S.RES_ID AND D.PARAM_ID = S.PARAM_ID) WHEN MATCHED THEN UPDATE SET D.VALUE =
S.VALUE , D.DATETIME = CURRENT_TIMESTAMP WHEN NOT MATCHED THEN INSERT (ID,
PARAM_ID, RES_ID, VALUE) VALUES (AE_STATE_SEQ.NEXTVAL, S.PARAM_ID, S.RES_ID,
S.VALUE)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.02 0.01 0 108 1020 101
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.02 0.01 0 108 1020 101
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2 MERGE AE_STATE (cr=148 pr=0 pw=0 time=18039 us)
101 VIEW (cr=147 pr=0 pw=0 time=8324 us)
101 SEQUENCE AE_STATE_SEQ (cr=147 pr=0 pw=0 time=8222 us)
101 HASH JOIN RIGHT OUTER (cr=137 pr=0 pw=0 time=7595 us)
0 TABLE ACCESS FULL AE_STATE (cr=61 pr=0 pw=0 time=664 us)
101 VIEW (cr=76 pr=0 pw=0 time=6546 us)
101 HASH JOIN (cr=76 pr=0 pw=0 time=6343 us)
302 MERGE JOIN (cr=54 pr=0 pw=0 time=994 us)
101 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=47 pr=0 pw=0 time=8927 us)
101 INDEX FULL SCAN AE_RES_DEV_TYPE_FK (cr=45 pr=0 pw=0 time=8315 us)(object id 823581)
302 SORT JOIN (cr=7 pr=0 pw=0 time=233 us)
5 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=0 pw=0 time=27 us)
101 VIEW (cr=22 pr=0 pw=0 time=4651 us)
101 SORT GROUP BY (cr=22 pr=0 pw=0 time=4547 us)
2000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=23 us)
********************************************************************************
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),0), NVL(SUM(C2),0)
FROM
(SELECT /*+ IGNORE_WHERE_CLAUSE NO_PARALLEL("AE_STATE_TMP")
FULL("AE_STATE_TMP") NO_PARALLEL_INDEX("AE_STATE_TMP") */ 1 AS C1, CASE
WHEN "AE_STATE_TMP"."PARAM_ID"<>:B1 THEN 1 ELSE 0 END AS C2 FROM
"AE_STATE_TMP" "AE_STATE_TMP") SAMPLESUB
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 44 0 2
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6 0.00 0.00 0 44 0 2
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=22 pr=0 pw=0 time=1087 us)
3000 TABLE ACCESS FULL AE_STATE_TMP (cr=22 pr=0 pw=0 time=30 us)
********************************************************************************
COMMIT WRITE NOWAIT
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 1 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 0 1 0
Misses in library cache during parse: 0
Parsing user id: 977 (recursive depth: 1)
********************************************************************************
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 2 0.00 0.00 0 0 0 0
Execute 1001 0.36 0.33 0 96 6616 3001
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1003 0.36 0.33 0 96 6616 3001
Misses in library cache during parse: 2
Misses in library cache during execute: 1
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1002 0.00 0.00
SQL*Net message from client 1002 0.00 0.41
log file sync 1 0.00 0.00
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 30 0.01 0.01 0 3 0 0
Execute 30 0.41 0.40 3 48932 1104 218
Fetch 8 0.00 0.00 0 176 0 8
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 68 0.44 0.43 3 49111 1104 226
Misses in library cache during parse: 8
Misses in library cache during execute: 7
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 3 0.00 0.00
16 user SQL statements in session.
16 internal SQL statements in session.
32 SQL statements in session.
********************************************************************************
Trace file: distinct.trc
Trace file compatibility: 10.01.00
Sort options: default
1 session in tracefile.
16 user SQL statements in trace file.
16 internal SQL statements in trace file.
32 SQL statements in trace file.
13 unique SQL statements in trace file.
36390 lines in trace file.
1 elapsed seconds in trace file.
TKPROF: Release 10.2.0.3.0 - Production on Wed Oct 23 12:08:03 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: bulk.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
begin :1 := dbms_pickler.get_type_shape(:2,:3,:4,:5,:6,:7); :8 :=
dbms_pickler.get_format(:9); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 8 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 8 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.01 0.01
********************************************************************************
select metadata
from
kopm$ where name='DB_FDO'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 2 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 2 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID KOPM$ (cr=2 pr=0 pw=0 time=53 us)
1 INDEX UNIQUE SCAN I_KOPM1 (cr=1 pr=0 pw=0 time=25 us)(object id 365)
********************************************************************************
begin :1 := dbms_pickler.get_type_shape(:2,:3,:4,:5,:6,:7); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 3 0 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.00 0 3 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
SELECT INSTANTIABLE, supertype_owner, supertype_name, LOCAL_ATTRIBUTES
FROM
all_types WHERE type_name = :1 AND owner = :2
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 9 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 9 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Rows Row Source Operation
------- ---------------------------------------------------
1 VIEW ALL_TYPES (cr=9 pr=0 pw=0 time=358 us)
1 SORT UNIQUE (cr=9 pr=0 pw=0 time=356 us)
1 UNION-ALL (cr=9 pr=0 pw=0 time=299 us)
1 FILTER (cr=9 pr=0 pw=0 time=272 us)
1 NESTED LOOPS OUTER (cr=9 pr=0 pw=0 time=260 us)
1 NESTED LOOPS OUTER (cr=9 pr=0 pw=0 time=247 us)
1 NESTED LOOPS (cr=9 pr=0 pw=0 time=237 us)
1 NESTED LOOPS (cr=6 pr=0 pw=0 time=166 us)
1 TABLE ACCESS BY INDEX ROWID USER$ (cr=2 pr=0 pw=0 time=56 us)
1 INDEX UNIQUE SCAN I_USER1 (cr=1 pr=0 pw=0 time=34 us)(object id 44)
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=4 pr=0 pw=0 time=106 us)
1 INDEX RANGE SCAN I_OBJ2 (cr=3 pr=0 pw=0 time=67 us)(object id 37)
1 TABLE ACCESS BY INDEX ROWID TYPE$ (cr=3 pr=0 pw=0 time=68 us)
1 INDEX UNIQUE SCAN I_TYPE2 (cr=2 pr=0 pw=0 time=40 us)(object id 185)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=5 us)
0 INDEX RANGE SCAN I_OBJ3 (cr=0 pr=0 pw=0 time=1 us)(object id 38)
0 TABLE ACCESS CLUSTER USER$ (cr=0 pr=0 pw=0 time=6 us)
0 INDEX UNIQUE SCAN I_USER# (cr=0 pr=0 pw=0 time=2 us)(object id 11)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us)(object id 103)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us)
0 FILTER (cr=0 pr=0 pw=0 time=5 us)
0 FILTER (cr=0 pr=0 pw=0 time=2 us)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us)
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX SKIP SCAN I_OBJ2 (cr=0 pr=0 pw=0 time=0 us)(object id 37)
0 TABLE ACCESS BY INDEX ROWID TYPE$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN I_TYPE2 (cr=0 pr=0 pw=0 time=0 us)(object id 185)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us)
0 INDEX FULL SCAN I_USER1 (cr=0 pr=0 pw=0 time=0 us)(object id 44)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN I_OBJ3 (cr=0 pr=0 pw=0 time=0 us)(object id 38)
0 TABLE ACCESS CLUSTER USER$ (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN I_USER# (cr=0 pr=0 pw=0 time=0 us)(object id 11)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us)(object id 103)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.06 0.06
********************************************************************************
begin ae_monitoring.saveValues(:1); end;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.20 0.20 4 685 1095 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.20 0.20 4 685 1095 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net more data from client 41 0.00 0.00
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
MERGE INTO AE_RESOURCE D USING ( SELECT T.DEVICE_ID, T.NUM, DECODE(O.ID, NULL,
T.NUM, T.VALUE) NAME, P.TYPE_ID, O.ID OWNER_ID FROM ( SELECT DEVICE_ID,
PROFILE_ID, PARAM_ID, NUM , MAX(VALUE) VALUE FROM TABLE( :B1 ) GROUP BY
DEVICE_ID, PROFILE_ID, PARAM_ID, NUM ) T INNER JOIN AE_PROFILE_DETAIL P ON
(P.PROFILE_ID = T.PROFILE_ID AND P.PARAM_ID = T.PARAM_ID) INNER JOIN
AE_RESOURCE_TYPE R ON (R.ID = P.TYPE_ID) LEFT JOIN AE_RESOURCE O ON
(O.DEVICE_ID = T.DEVICE_ID AND O.TYPE_ID = R.OWNER_ID) WHERE T.PARAM_ID =
:B2 OR O.ID IS NULL ) S ON ( D.DEVICE_ID = S.DEVICE_ID AND D.RES_NUM =
S.NUM AND D.TYPE_ID = S.TYPE_ID AND D.START_DATE <= SYSDATE AND SYSDATE <=
NVL(D.END_DATE, SYSDATE + 1) ) WHEN NOT MATCHED THEN INSERT (ID, DEVICE_ID,
OWNER_ID, TYPE_ID, RES_NUM, NAME) VALUES (AE_RESOURCE_SEQ.NEXTVAL,
S.DEVICE_ID, S.OWNER_ID, S.TYPE_ID, S.NUM, S.NAME)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.03 0.02 0 161 5 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.03 0.02 0 161 5 0
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
1 MERGE AE_RESOURCE (cr=171 pr=0 pw=0 time=21318 us)
101 VIEW (cr=171 pr=0 pw=0 time=18571 us)
101 SEQUENCE AE_RESOURCE_SEQ (cr=171 pr=0 pw=0 time=17567 us)
101 FILTER (cr=161 pr=0 pw=0 time=17203 us)
201 HASH JOIN RIGHT OUTER (cr=161 pr=0 pw=0 time=18200 us)
101 TABLE ACCESS FULL AE_RESOURCE (cr=76 pr=0 pw=0 time=46040 us)
201 HASH JOIN RIGHT OUTER (cr=85 pr=0 pw=0 time=15548 us)
101 TABLE ACCESS FULL AE_RESOURCE (cr=76 pr=0 pw=0 time=10066 us)
201 VIEW (cr=9 pr=0 pw=0 time=12926 us)
201 HASH JOIN (cr=9 pr=0 pw=0 time=12723 us)
6 MERGE JOIN (cr=9 pr=0 pw=0 time=227 us)
2 TABLE ACCESS BY INDEX ROWID AE_RESOURCE_TYPE (cr=2 pr=0 pw=0 time=68 us)
2 INDEX FULL SCAN AE_RESOURCE_TYPE_PK (cr=1 pr=0 pw=0 time=40 us)(object id 823579)
6 SORT JOIN (cr=7 pr=0 pw=0 time=153 us)
6 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=0 pw=0 time=50 us)
201 VIEW (cr=0 pr=0 pw=0 time=10984 us)
201 SORT GROUP BY (cr=0 pr=0 pw=0 time=10982 us)
3000 COLLECTION ITERATOR PICKLER FETCH (cr=0 pr=0 pw=0 time=25 us)
********************************************************************************
update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,
cache=:7,highwater=:8,audit$=:9,flags=:10
where
obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 15 0.00 0.00 0 0 0 0
Execute 15 0.00 0.00 0 30 31 15
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 30 0.00 0.00 0 30 31 15
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 UPDATE SEQ$ (cr=2 pr=0 pw=0 time=412 us)
1 INDEX UNIQUE SCAN I_SEQ1 (cr=2 pr=0 pw=0 time=34 us)(object id 102)
********************************************************************************
INSERT INTO AE_STATE_LOG(ID, RES_ID, PARAM_ID, VALUE) SELECT
AE_STATE_LOG_SEQ.NEXTVAL, ID, PARAM_ID, VALUE FROM ( SELECT DISTINCT R.ID,
T.PARAM_ID, DECODE(L.TYPE_ID, :B7 , NVL(S.VALUE, T.VALUE), T.VALUE) VALUE
FROM ( SELECT DEVICE_ID, PROFILE_ID, PARAM_ID, NUM , MAX(VALUE) VALUE FROM
TABLE( :B1 ) GROUP BY DEVICE_ID, PROFILE_ID, PARAM_ID, NUM ) T INNER JOIN
AE_PROFILE_DETAIL P ON (P.PROFILE_ID = T.PROFILE_ID AND P.PARAM_ID =
T.PARAM_ID) INNER JOIN AE_RESOURCE R ON ( R.DEVICE_ID = T.DEVICE_ID AND
R.RES_NUM = T.NUM AND R.TYPE_ID = P.TYPE_ID AND R.START_DATE <= SYSDATE AND
SYSDATE <= NVL(R.END_DATE, SYSDATE + 1)) LEFT JOIN AE_STATE S ON (S.RES_ID =
R.ID AND S.PARAM_ID = T.PARAM_ID) INNER JOIN AE_PARAMETER A ON (A.ID =
P.PARAM_ID) INNER JOIN AE_DOMAIN D ON (D.ID = A.DOMAIN_ID) INNER JOIN
AE_STATE_POLICY L ON (L.ID = D.POLICY_ID) LEFT JOIN AE_THRESHOLD H ON (
H.POLICY_ID = L.ID AND (( H.TYPE_ID = :B4 AND S.VALUE <= H.VALUE AND
T.VALUE >= H.VALUE ) OR ( H.TYPE_ID = :B3 AND S.VALUE >= H.VALUE AND
T.VALUE <= H.VALUE ) OR ( H.TYPE_ID = :B2 AND ABS(T.VALUE - S.VALUE) >=
H.VALUE ))) WHERE ( S.ID IS NULL OR NOT H.ID IS NULL OR ( L.TYPE_ID = :B7
AND T.VALUE < S.VALUE ) OR ( L.TYPE_ID = :B6 AND T.VALUE <> S.VALUE ) ) AND
T.PARAM_ID <> :B5 )
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.12 0.11 3 388 42 101
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.12 0.11 3 388 42 101
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
101 SEQUENCE AE_STATE_LOG_SEQ (cr=203 pr=0 pw=0 time=25270 us)
101 VIEW (cr=193 pr=0 pw=0 time=24741 us)
101 SORT UNIQUE (cr=193 pr=0 pw=0 time=24539 us)
101 FILTER (cr=193 pr=0 pw=0 time=24683 us)
101 NESTED LOOPS OUTER (cr=193 pr=0 pw=0 time=24579 us)
101 HASH JOIN OUTER (cr=91 pr=0 pw=0 time=22733 us)
101 HASH JOIN (cr=70 pr=0 pw=0 time=22407 us)
5 HASH JOIN (cr=16 pr=0 pw=0 time=1754 us)
5 TABLE ACCESS BY INDEX ROWID AE_DOMAIN (cr=9 pr=0 pw=0 time=1077 us)
8 NESTED LOOPS (cr=8 pr=0 pw=0 time=7064 us)
2 VIEW index$_join$_015 (cr=6 pr=0 pw=0 time=997 us)
2 HASH JOIN (cr=6 pr=0 pw=0 time=993 us)
2 INDEX FAST FULL SCAN AE_STATE_POLICY_FK (cr=3 pr=0 pw=0 time=93 us)(object id 826212)
2 INDEX FAST FULL SCAN AE_STATE_POLICY_PK (cr=3 pr=0 pw=0 time=51 us)(object id 826206)
5 INDEX RANGE SCAN AE_DOMAIN_FK (cr=2 pr=0 pw=0 time=26 us)(object id 826208)
57 TABLE ACCESS FULL AE_PARAMETER (cr=7 pr=0 pw=0 time=117 us)
101 VIEW (cr=54 pr=0 pw=0 time=19997 us)
101 SORT GROUP BY (cr=54 pr=0 pw=0 time=19893 us)
2000 HASH JOIN (cr=54 pr=0 pw=0 time=14354 us)
302 MERGE JOIN (cr=54 pr=0 pw=0 time=1023 us)
101 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=47 pr=0 pw=0 time=36446 us)
101 INDEX FULL SCAN AE_RES_DEV_TYPE_FK (cr=45 pr=0 pw=0 time=35634 us)(object id 823581)
302 SORT JOIN (cr=7 pr=0 pw=0 time=255 us)
5 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=0 pw=0 time=30 us)
2000 COLLECTION ITERATOR PICKLER FETCH (cr=0 pr=0 pw=0 time=2015 us)
0 TABLE ACCESS BY INDEX ROWID AE_STATE (cr=21 pr=0 pw=0 time=252 us)
0 BITMAP CONVERSION TO ROWIDS (cr=21 pr=0 pw=0 time=248 us)
0 BITMAP MINUS (cr=21 pr=0 pw=0 time=234 us)
0 BITMAP CONVERSION FROM ROWIDS (cr=21 pr=0 pw=0 time=224 us)
0 SORT ORDER BY (cr=21 pr=0 pw=0 time=221 us)
0 INDEX FULL SCAN AE_STATE_PK (cr=21 pr=0 pw=0 time=207 us)(object id 813023)
0 BITMAP CONVERSION FROM ROWIDS (cr=0 pr=0 pw=0 time=3 us)
0 INDEX RANGE SCAN AE_STATE_PARAM_FK (cr=0 pr=0 pw=0 time=3 us)(object id 813025)
0 VIEW (cr=102 pr=0 pw=0 time=1419 us)
0 TABLE ACCESS BY INDEX ROWID AE_THRESHOLD (cr=102 pr=0 pw=0 time=1201 us)
100 INDEX RANGE SCAN AE_THRESHOLD_PROFILE_FK (cr=2 pr=0 pw=0 time=467 us)(object id 825819)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 3 0.00 0.00
********************************************************************************
select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$, spare1,
spare2
from
obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null
and linkname is null and subname is null
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 4 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 4 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=4 pr=0 pw=0 time=50 us)
1 INDEX RANGE SCAN I_OBJ2 (cr=3 pr=0 pw=0 time=29 us)(object id 37)
********************************************************************************
select t.ts#,t.file#,t.block#,nvl(t.bobj#,0),nvl(t.tab#,0),t.intcols,
nvl(t.clucols,0),t.audit$,t.flags,t.pctfree$,t.pctused$,t.initrans,
t.maxtrans,t.rowcnt,t.blkcnt,t.empcnt,t.avgspc,t.chncnt,t.avgrln,
t.analyzetime,t.samplesize,t.cols,t.property,nvl(t.degree,1),
nvl(t.instances,1),t.avgspc_flb,t.flbcnt,t.kernelcols,nvl(t.trigflag, 0),
nvl(t.spare1,0),nvl(t.spare2,0),t.spare4,t.spare6,ts.cachedblk,ts.cachehit,
ts.logicalread
from
tab$ t, tab_stats$ ts where t.obj#= :1 and t.obj# = ts.obj# (+)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 4 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 4 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 NESTED LOOPS OUTER (cr=4 pr=0 pw=0 time=89 us)
1 TABLE ACCESS CLUSTER TAB$ (cr=3 pr=0 pw=0 time=69 us)
1 INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=32 us)(object id 3)
0 TABLE ACCESS BY INDEX ROWID TAB_STATS$ (cr=1 pr=0 pw=0 time=15 us)
0 INDEX UNIQUE SCAN I_TAB_STATS$_OBJ# (cr=1 pr=0 pw=0 time=12 us)(object id 709)
********************************************************************************
select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,
i.pctfree$,i.initrans,i.maxtrans,i.blevel,i.leafcnt,i.distkey,i.lblkkey,
i.dblkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i.dataobj#,
nvl(i.degree,1),nvl(i.instances,1),i.rowcnt,mod(i.pctthres$,256),
i.indmethod#,i.trunccnt,nvl(c.unicols,0),nvl(c.deferrable#+c.valid#,0),
nvl(i.spare1,i.intcols),i.spare4,i.spare2,i.spare6,decode(i.pctthres$,null,
null,mod(trunc(i.pctthres$/256),256)),ist.cachedblk,ist.cachehit,
ist.logicalread
from
ind$ i, ind_stats$ ist, (select enabled, min(cols) unicols,
min(to_number(bitand(defer,1))) deferrable#,min(to_number(bitand(defer,4)))
valid# from cdef$ where obj#=:1 and enabled > 1 group by enabled) c where
i.obj#=c.enabled(+) and i.obj# = ist.obj#(+) and i.bo#=:1 order by i.obj#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 0.00 0.00 0 13 0 3
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 6 0.00 0.00 0 13 0 3
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
3 SORT ORDER BY (cr=13 pr=0 pw=0 time=454 us)
3 HASH JOIN OUTER (cr=13 pr=0 pw=0 time=414 us)
3 NESTED LOOPS OUTER (cr=8 pr=0 pw=0 time=69 us)
3 TABLE ACCESS CLUSTER IND$ (cr=6 pr=0 pw=0 time=38 us)
1 INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=9 us)(object id 3)
0 TABLE ACCESS BY INDEX ROWID IND_STATS$ (cr=2 pr=0 pw=0 time=25 us)
0 INDEX UNIQUE SCAN I_IND_STATS$_OBJ# (cr=2 pr=0 pw=0 time=18 us)(object id 711)
1 VIEW (cr=5 pr=0 pw=0 time=130 us)
1 SORT GROUP BY (cr=5 pr=0 pw=0 time=127 us)
1 TABLE ACCESS CLUSTER CDEF$ (cr=5 pr=0 pw=0 time=86 us)
1 INDEX UNIQUE SCAN I_COBJ# (cr=2 pr=0 pw=0 time=30 us)(object id 30)
********************************************************************************
select pos#,intcol#,col#,spare1,bo#,spare2
from
icol$ where obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 3 0.00 0.00 0 0 0 0
Fetch 6 0.00 0.00 0 12 0 3
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 10 0.00 0.00 0 12 0 3
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID ICOL$ (cr=4 pr=0 pw=0 time=44 us)
1 INDEX RANGE SCAN I_ICOL1 (cr=3 pr=0 pw=0 time=42 us)(object id 40)
********************************************************************************
select name,intcol#,segcol#,type#,length,nvl(precision#,0),decode(type#,2,
nvl(scale,-127/*MAXSB1MINAL*/),178,scale,179,scale,180,scale,181,scale,182,
scale,183,scale,231,scale,0),null$,fixedstorage,nvl(deflength,0),default$,
rowid,col#,property, nvl(charsetid,0),nvl(charsetform,0),spare1,spare2,
nvl(spare3,0)
from
col$ where obj#=:1 order by intcol#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 6 0.00 0.00 0 4 0 5
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 8 0.00 0.00 0 4 0 5
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
5 SORT ORDER BY (cr=3 pr=0 pw=0 time=56 us)
5 TABLE ACCESS CLUSTER COL$ (cr=3 pr=0 pw=0 time=24 us)
1 INDEX UNIQUE SCAN I_OBJ# (cr=2 pr=0 pw=0 time=13 us)(object id 3)
********************************************************************************
select con#,obj#,rcon#,enabled,nvl(defer,0)
from
cdef$ where robj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 3 0.00 0.00 0 6 0 2
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 5 0.00 0.00 0 6 0 2
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
2 TABLE ACCESS BY INDEX ROWID CDEF$ (cr=6 pr=0 pw=0 time=48 us)
2 INDEX RANGE SCAN I_CDEF3 (cr=4 pr=0 pw=0 time=36 us)(object id 52)
********************************************************************************
select con#,type#,condlength,intcols,robj#,rcon#,match#,refact,nvl(enabled,0),
rowid,cols,nvl(defer,0),mtime,nvl(spare1,0)
from
cdef$ where obj#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 8 0.00 0.00 0 12 0 7
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 10 0.00 0.00 0 12 0 7
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
7 TABLE ACCESS CLUSTER CDEF$ (cr=12 pr=0 pw=0 time=21 us)
1 INDEX UNIQUE SCAN I_COBJ# (cr=2 pr=0 pw=0 time=10 us)(object id 30)
********************************************************************************
select intcol#,nvl(pos#,0),col#,nvl(spare1,0)
from
ccol$ where con#=:1
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 7 0.00 0.00 0 0 0 0
Fetch 14 0.00 0.00 0 35 0 7
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 22 0.00 0.00 0 35 0 7
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 TABLE ACCESS BY INDEX ROWID CCOL$ (cr=5 pr=0 pw=0 time=65 us)
1 INDEX RANGE SCAN I_CCOL1 (cr=4 pr=0 pw=0 time=73 us)(object id 54)
********************************************************************************
select col#, grantee#, privilege#,max(mod(nvl(option$,0),2))
from
objauth$ where obj#=:1 and col# is not null group by privilege#, col#,
grantee# order by col#, grantee#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 2 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 2 0 0
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
0 SORT GROUP BY (cr=2 pr=0 pw=0 time=79 us)
0 TABLE ACCESS BY INDEX ROWID OBJAUTH$ (cr=2 pr=0 pw=0 time=62 us)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=2 pr=0 pw=0 time=57 us)(object id 103)
********************************************************************************
select grantee#,privilege#,nvl(col#,0),max(mod(nvl(option$,0),2))
from
objauth$ where obj#=:1 group by grantee#,privilege#,nvl(col#,0) order by
grantee#
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 2 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.00 0.00 0 2 0 0
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: SYS (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
0 SORT GROUP BY (cr=2 pr=0 pw=0 time=32 us)
0 TABLE ACCESS BY INDEX ROWID OBJAUTH$ (cr=2 pr=0 pw=0 time=17 us)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=2 pr=0 pw=0 time=15 us)(object id 103)
********************************************************************************
MERGE INTO AE_STATE D USING ( SELECT T.PARAM_ID, T.VALUE, R.ID RES_ID FROM (
SELECT DEVICE_ID, PROFILE_ID, PARAM_ID, NUM , MAX(VALUE) VALUE FROM TABLE(
:B1 ) GROUP BY DEVICE_ID, PROFILE_ID, PARAM_ID, NUM ) T INNER JOIN
AE_PROFILE_DETAIL P ON (P.PROFILE_ID = T.PROFILE_ID AND P.PARAM_ID =
T.PARAM_ID) INNER JOIN AE_RESOURCE R ON ( R.DEVICE_ID = T.DEVICE_ID AND
R.RES_NUM = T.NUM AND R.TYPE_ID = P.TYPE_ID AND R.START_DATE <= SYSDATE AND
SYSDATE <= NVL(R.END_DATE, SYSDATE + 1)) WHERE T.PARAM_ID <> :B2 ) S ON
(D.RES_ID = S.RES_ID AND D.PARAM_ID = S.PARAM_ID) WHEN MATCHED THEN UPDATE
SET D.VALUE = S.VALUE , D.DATETIME = CURRENT_TIMESTAMP WHEN NOT MATCHED
THEN INSERT (ID, PARAM_ID, RES_ID, VALUE) VALUES (AE_STATE_SEQ.NEXTVAL,
S.PARAM_ID, S.RES_ID, S.VALUE)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.01 0.01 1 12 1016 101
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.01 0.01 1 12 1016 101
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 977 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
2 MERGE AE_STATE (cr=126 pr=1 pw=0 time=23502 us)
101 VIEW (cr=125 pr=0 pw=0 time=155950 us)
101 SEQUENCE AE_STATE_SEQ (cr=125 pr=0 pw=0 time=155847 us)
101 HASH JOIN OUTER (cr=115 pr=0 pw=0 time=11697 us)
101 VIEW (cr=54 pr=0 pw=0 time=10526 us)
101 HASH JOIN (cr=54 pr=0 pw=0 time=10423 us)
302 MERGE JOIN (cr=54 pr=0 pw=0 time=1015 us)
101 TABLE ACCESS BY INDEX ROWID AE_RESOURCE (cr=47 pr=0 pw=0 time=9332 us)
101 INDEX FULL SCAN AE_RES_DEV_TYPE_FK (cr=45 pr=0 pw=0 time=8618 us)(object id 823581)
302 SORT JOIN (cr=7 pr=0 pw=0 time=244 us)
5 TABLE ACCESS FULL AE_PROFILE_DETAIL (cr=7 pr=0 pw=0 time=34 us)
101 VIEW (cr=0 pr=0 pw=0 time=8735 us)
101 SORT GROUP BY (cr=0 pr=0 pw=0 time=8633 us)
2000 COLLECTION ITERATOR PICKLER FETCH (cr=0 pr=0 pw=0 time=2014 us)
0 TABLE ACCESS FULL AE_STATE (cr=61 pr=0 pw=0 time=729 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.00 0.00
********************************************************************************
COMMIT WRITE NOWAIT
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 private final static String MERGE_VAL_SQL =
"merge into ae_state_tmp d " +
"using ( select ? id,? device_id,? profile_id,? param_id,? num,? value " +
" from dual" +
" ) s " +
"on ( d.device_id = s.device_id and d.profile_id = s.profile_id and " +
" d.param_id = s.param_id and d.num = s.num ) " +
"when matched then " +
" update set d.value = s.value " +
"when not matched then " +
" insert (id, device_id, profile_id, param_id, num, value) " +
" values (s.id, s.device_id, s.profile_id, s.param_id, s.num, s.value)";
Видел вашу статью на хабре, сам только читатель, поэтому нашел контакт «где-нибудь».
Хотел бы добавить пару слов про кеш на сиквенсе.
Отсутствие кеша на сиквенсе чревато даже в не-RAC системе и даже при однопоточном его (сиквенса) использовании. Кешированные значения берутся (логично) из кеша, некешированные — из таблицы seq$, при этом каждый раз эта таблица обновляется (это можно видеть в рекурсивных запросах трассировки 10046). Само по себе это еще не страшно, но вот то, что эта таблица общая для всех сиквенсов, уже может привести к проблемам, например, если есть несколько таких активно используемых сиквенсов, то они все вместе будут таблицу дергать и, скорее всего, конкурировать за один и тот же ее блок.
Поэтому кешировать сиквенс нужно в 95% случаев, и еще 4.95% случаев — просто неправильное использование сиквенса.
Загружаем данные в Oracle