Table access Full X Indices

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qua, 13 Jul 2005 6:57 pm

Estou executando a seguinte query :
Código: Selecionar todos
SELECT   e.status, w.prioridade, w.nome, e.usuario_ant_rep, e.data_ini,
         e.data_fim, e.cod_workflow, e.prazo, e.unidade_prazo, e.cod_etapa,
         te.descricao, e.cod_tipoetapa, w.cod_tipoworkflow, e.cod_usuario
    FROM etapa e, workflow w, tipo_etapa te
   WHERE e.cod_usuario = 1
     AND (e.status = 'não' OR e.status = 'PRO')
     AND w.cod_workflow = e.cod_workflow
     AND e.cod_tipoetapa = te.cod_tipoetapa
     AND te.tipo = 1


Existem os seguintes indices na base de dados :
ETAPA_COD_USUARIO -> em cima de COD_USUARIO da tabela ETAPA
ETAPA_STATUS -> em cima de STATUS da tabela ETAPA
TIPO_ETAPA_TIPO -> em cima de TIPO da tabela TIPO_ETAPA

No plano de execução, verifiquei que a query faz TABLE_ACCESS_FULL nas tabelas ETAPA, WORKFLOW e TIPO_ETAPA e não utiliza os índices acima.

Por que a query não utiliza os índices ETAPA_COD_USUARIO, ETAPA_STATUS e TIPO_ETAPA_TIPO ?
rogers
Localização: RJ

Mensagemem Seg, 01 Ago 2005 11:54 am

Seu otimizador é por CUSTO ou REGRA?
Se é CUSTO, as estatísticas estão atualizadas?

Tem casos que ele acha mais rápido não usar os índices. Um exemplo disso poder ser esse ÍNDICE no campo STATUS (com apenas SIM ou POR). Não sei quantas opções pode haver nesse campo, mas creio que não são muitas.

Tente forçar o uso do índice pra ver se vai melhorar com HINTS:
Código: Selecionar todos
SELECT  /*+ INDEX (seu_campo seu_indice) */
   e.status, w.prioridade, w.nome, e.usuario_ant_rep, e.data_ini,
         e.data_fim, e.cod_workflow, e.prazo, e.unidade_prazo, e.cod_etapa,
         te.descricao, e.cod_tipoetapa, w.cod_tipoworkflow, e.cod_usuario
    FROM etapa e, workflow w, tipo_etapa te
   WHERE e.cod_usuario = 1
     AND (e.status = 'não' OR e.status = 'PRO')
     AND w.cod_workflow = e.cod_workflow
     AND e.cod_tipoetapa = te.cod_tipoetapa
     AND te.tipo = 1
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante