Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JCSPADER

Otimizar Consulta

Recommended Posts

Pessoal, gostaria da ajuda de vocês para otimizar esta consulta:

 

CREATE OR REPLACE VIEW `gvt_view_novoatendimento` AS
SELECT 
  gvt_view_dispon.telefone,
  gvt_view_dispon.armario,
  gvt_view_dispon.caixa,
  gvt_view_dispon.disponivel,
  date_format(gvt_view_dispon.atualizado,'%d/%m/%Y') AS atualizado,
  gvt_atendimento.codigo,
  gvt_atendimento.atendente AS atendente,
  gvt_view_dispon.atendentes
 FROM gvt_view_dispon
 LEFT JOIN gvt_atendimento ON gvt_atendimento.cliente = gvt_view_dispon.telefone
 LEFT JOIN gvt_bloqueio ON gvt_bloqueio.telefone = gvt_view_dispon.telefone
 WHERE
  (gvt_bloqueio.tempo IS NULL) AND
  (DATEDIFF(NOW(), gvt_view_dispon.atualizado) < 15) AND
  (bloqueado = '0' OR gvt_atendimento.status = '2' OR gvt_atendimento.status = '0') AND
  (gvt_atendimento.dtprazo IS NULL OR (TIMESTAMPDIFF(MINUTE, gvt_atendimento.dtprazo, NOW()) > 0)) AND
  (gvt_atendimento.status <> '5' OR gvt_atendimento.status IS NULL)
 ORDER BY
 COALESCE(gvt_atendimento.status,9),
 COALESCE(gvt_atendimento.atendente,999),
 gvt_view_dispon.prioridade DESC,
 gvt_atendimento.dtprazo,
 gvt_view_dispon.disponivel DESC,
 gvt_view_dispon.caixa,
 gvt_view_dispon.telefone;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da EXPLAIN no Select e cola o resultado aqui

 

mas previamente ja da pra dizer q aquele order by cheio de coisa q você tah fazendo tah deve tah comendo mto processamento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da EXPLAIN no Select e cola o resultado aqui

 

mas previamente ja da pra dizer q aquele order by cheio de coisa q você tah fazendo tah deve tah comendo mto processamento

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE lista_cadastro ALL cep 254596 Using where; Using temporary; Using filesort

1 SIMPLE gvt_dispon eq_ref PRIMARY,armario PRIMARY 12 sistemasdeinte2.lista_cadastro.cep,sistemasdeinte2.lista_cadastro.numero 1 Using where

1 SIMPLE gvt_dispon_update eq_ref PRIMARY PRIMARY 12 sistemasdeinte2.gvt_dispon.cidade,sistemasdeinte2.gvt_dispon.armario 1 Using where

1 SIMPLE gvt_atendimento eq_ref cliente cliente 10 sistemasdeinte2.lista_cadastro.telefone 1 Using where

1 SIMPLE gvt_bloqueio eq_ref PRIMARY PRIMARY 10 sistemasdeinte2.lista_cadastro.telefone

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, isso aih (pelo q eu entendi) eh uma view em cima de outra view, mas o fato eh q você na tabela 'lista_cadastro' tem um campo chamado 'cep' e eh esse campo q ta te quebrando as pernas, coloca uma primary key nele(se possivel) ou index

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.