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

Откуда:
Сообщений: 356
доброго времени суток!
есть запрос на неюзабельность индекса:
alter index IND1_COL_I MODIFY PARTITION D100608 UNUSABLE
запрос тормозит(выполняется около 7-8 секунд). начинаю ткпрофить
и вижу...
SQL ID: 130dvvr5s8bgn
Plan Hash: 1160622595
select obj#, dataobj#, part#, hiboundlen, hiboundval, ts#, file#, block#,
  pctfree$, pctused$, initrans, maxtrans, flags, analyzetime, samplesize,
  rowcnt, blkcnt, empcnt, avgspc, chncnt, avgrln, length(bhiboundval),
  bhiboundval
from
 tabpart$ where bo# = :1 order by part#


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.78       7.59        728      10252          0        9149
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.78       7.59        728      10252          0        9149

Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: SYS   (recursive depth: 2)

Rows     Row Source Operation
-------  ---------------------------------------------------
   9149  TABLE ACCESS BY INDEX ROWID TABPART$ (cr=375 pr=0 pw=0 time=39641 us cost=4 size=33440 card=209)
   9149   INDEX RANGE SCAN I_TABPART_BOPART$ (cr=25 pr=0 pw=0 time=8512 us cost=1 size=0 card=209)(object id 579)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  db file sequential read                       728        1.08          6.92
********************************************************************************

создаю индекс:
 CREATE INDEX SYS.TAB_PART_BO_I ON sys.tabpart$
(BO#)
LOGGING
NOPARALLEL;

далее анализирую таблицу и все ее индексы. (dbms_stats.gather_stat.....)

ну и делаю кэшированой:
alter table sys.tabpart$ cache 
далее что бы не было мыслей брать распарсеный запрос:
alter system flush shared_pool
кэширую:
select * from sys.tabpart$ 

и снова делаю анюзабл:
alter index IND1_COL_I MODIFY PARTITION D100608 UNUSABLE

SQL ID: c3zymn7x3k6wy
Plan Hash: 3446064519
select obj#, dataobj#, part#, hiboundlen, hiboundval, flags, ts#, file#,
  block#, pctfree$, initrans, maxtrans, analyzetime, samplesize, rowcnt,
  blevel, leafcnt, distkey, lblkkey, dblkkey, clufac, pctthres$,
  length(bhiboundval), bhiboundval
from
 indpart$ where bo# = :1 order by part#


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      1.29       1.38          0      10096          0        9149
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      1.30       1.38          0      10096          0        9149

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
-------  ---------------------------------------------------
   9149  TABLE ACCESS BY INDEX ROWID INDPART$ (cr=947 pr=0 pw=0 time=34432 us cost=5 size=37030 card=230)
   9149   INDEX RANGE SCAN I_INDPART_BOPART$ (cr=47 pr=0 pw=0 time=8639 us cost=1 size=0 card=230)(object id 584)

********************************************************************************

очевидно что улучшения произошли только за счет чтения из буферного кэша вместо диска. А индекс по прежнему испольховать не хочет...

подскажите как можно решить проблему...
заранее благодарю!
11 июн 10, 19:58    [8933495]     Ответить | Цитировать Сообщить модератору
 Re: долго выполняется  [new]
Elic
Member

Откуда:
Сообщений: 29990
Дмитрий_Кунин
CREATE INDEX SYS.
alter table sys.
Любитель острых ощущений?
Лучше иди и убейся об стену сам способом менее мучительным, чем это с тобой сделает кто-нибудь другой.
11 июн 10, 22:38    [8933951]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить