› Fóruns › SQL e PL/SQL › Otimização de query! › Otimização de query!
Tenho essa query!
SELECT terper.out_num_ter, ter.out_nome, terper.per_codigo, per_descricao
FROM fin_perfil per, fin_out_ter ter, fin_out_ter_per terper
WHERE terper.out_num_ter = ter.out_num_ter
AND terper.per_codigo = per.per_codigo
ORDER BY 1, 3
Plano
Plan
SELECT STATEMENT CHOOSECost: 646 Bytes: 2 575 172 Cardinality: 27 991
6 SORT ORDER BY Cost: 646 Bytes: 2 575 172 Cardinality: 27 991
5 HASH JOIN Cost: 60 Bytes: 2 575 172 Cardinality: 27 991
3 HASH JOIN Cost: 15 Bytes: 711 227 Cardinality: 17 347
1 TABLE ACCESS FULL FIN.FIN_PERFIL Cost: 3 Bytes: 2 706 Cardinality: 82
2 INDEX FULL SCAN UNIQUE FIN.OTP_PK Cost: 48 Bytes: 138 776 Cardinality: 17 347
4 TABLE ACCESS FULL FIN.FIN_OUT_TER Cost: 40 Bytes: 804 015 Cardinality: 15 765
Se eu utilizar o select para obter os dados, em vez de ter o inner join às tabelas que contem os dados, o custo do otimizador é muito superior! Existem índices que ligam estas tabelas, porque que mesmo assim está sendo feito um full table scan em ambas as tabelas?