Григорий.
Я протрассировала период работы оператором.
BEGIN sde.version_util.delete_states (:state_list); :sql_code :=
sde.sde_util.SE_SUCCESS; EXCEPTION WHEN OTHERS THEN :sql_code := SQLCODE;
:error_string := SQLERRM; END;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.52 1.33 3444 3782 25 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.52 1.33 3444 3782 25 1
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 494
********************************************************************************
DELETE FROM SDE.STATE_LINEAGES
WHERE
LINEAGE_ID = :b1 AND LINEAGE_ID != :b2
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 0.00 0.00 0 0 0 0
Execute 1 0.50 1.25 3422 3751 13 1
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 0.50 1.25 3422 3751 13 1
=====================================================================================
Видно, что процессор нагружается только в половину времени общего выполнения запроса
на удаление. Т.е. процессор выполняет запрос быстро, после чего ждет завершения
чего-то. К сожалению, выяснить завершения чего именно мне пока не удалось,
подозреваю, что дело либо в вводе-выводе, либо в неоптимизированном плане
выполнения запроса (для того, чтобы удалить одну строку, сервер почему-то
"пролапатил" много блоков).
Следующий запрос (подобный запросу на удаление) показывает:
======================================================================================
SQL> select * from sde.state_lineages where lineage_id = 5 and lineage_id != 10;
no rows selected
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=570 Card=1 Bytes=2)
1 0 TABLE ACCESS (FULL) OF 'STATE_LINEAGES' (Cost=570 Card=1 B
ytes=2)
Statistics
----------------------------------------------------------
0 recursive calls
6 db block gets
3752 consistent gets
3750 physical reads
60 redo size
274 bytes sent via SQL*Net to client
315 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
Если есть предположения помогите.
Заранее спасибо!