Pular para o conteúdo

Fóruns SQL e PL/SQL Otimização de query! Otimização de query!

#88253
ramasine
Participante

    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?