Este é meu primeiro tópico aqui no forum e preciso da ajuda de voces...
Estou com um problema de lentidão em uma consulta gigantesca com 3 unions,já verifiquei que a segunda consulta que causa lentidao,realizei um trace da consulta e verifiquei que existe um join que esta trazendo muitos registros e com o metodo de acesso TABLE ACCESS BY INDEX ROWID.Gostaria de saber se este metodo de acesso é realmente o apropriado para ligação de tabelas que contem muitos registros como é o caso da minha(aprox. 100.000 nas duas tabelas) e se existe outro e outa forma de modificar isto? -
OBS:O intrigante é que esta consulta só é lenta neste cliente nos outros 100 a extremamente rapida e no meu ambiente tambem...descofio que pode ser a performance do banco deles. -
Olhem uma parte do meu trace:
Rows Row Source Operation
------- ---------------------------------------------------
33 TABLE ACCESS BY INDEX ROWID ATENDIME (cr=3293923 pr=0 pw=0 time=55781817 us)
17988299 INDEX RANGE SCAN ATENDIME_V_INTERNADOS (cr=87843 pr=0 pw=0 time=35978810 us)(object id 72840)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.10 0.10 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 56.68 56.10 0 3310107 0 61
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 56.79 56.21 0 3310107 0 61
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 91 0.28 0.28 0 0 0 0
Execute 89 0.00 0.00 0 0 0 83
Fetch 5 59.91 59.30 0 3494205 0 74
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 185 60.20 59.60 0 3494205 0 157
Se alguém é fera em performance de banco e sqlTuning ai da uma mão,pois não sei mais onde mexer...