Ir para conteúdo

POWERED BY:

Arquivado

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

KUROL3

ORDER BY data_ultima_atualizacao

Recommended Posts

OLá a todos vamos lá a mais um problema...

alguem tem alguma idéia de como otimiza-lo?

quando eu coloco para ordenar pela data_proxima_acao demora muitoooo tiro ele fica rápido

 

será que criar uma view resolve (da pra criar indice na view) estou usando engine innob

 

SELECT 
IF (O.id_departamento_release = 0 , DATE(O.data), (
	SELECT 
	DATE_FORMAT(DATE_ADD(W_OCR.data, INTERVAL W_OCR.dias_proxima_acao DAY), '%Y-%m-%d') 
	FROM 
	ocorrencias_releases W_OCR
	WHERE 
	O.id = W_OCR.id_ocorrencia 
	ORDER BY 
	W_OCR.id 
	DESC LIMIT 1)
	) as data_proxima_acao
FROM
ocorrencias O							
WHERE							
 2 = IF (O.id_departamento_release = 0 , O.id_departamento, O.id_departamento_release)	 AND O.id_usuario_fechou = 0
ORDER BY
if (O.id_usuario_fechou = 0, 0, 1), data_proxima_acao
ASC	
LIMIT 0, 16

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria algum indicador se fechamento além de id_usuario_fechou ?

Ele e data_proxima_acao poderiam ser as chaves de um índice.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O indicador que fechou é quando o id_usuario_fechou != 0 ou > 0 ou <> 0

 

veja como está os indices

 

Índices: [Documentação] Nome chave 	Tipo 	Cardinalidade 	Ação 	Campo
PRIMARY 	PRIMARY 	29930  	Editar 	Eliminar 	id
id_usuario 	INDEX 	51  	Editar 	Eliminar 	id_usuario
id_cliente 	INDEX 	2137  	Editar 	Eliminar 	id_cliente
id_usuario_para 	INDEX 	205  	Editar 	Eliminar 	id_usuario_para
id_departamento 	INDEX 	77  	Editar 	Eliminar 	id_departamento
id_imovel 	INDEX 	9976  	Editar 	Eliminar 	id_imovel
contrato_id 	INDEX 	14965  	Editar 	Eliminar 	contrato_id
contrato_sequencia
contrato_digito
id_tipo 	INDEX 	482  	Editar 	Eliminar 	id_tipo
id_empresa 	INDEX 	7  	Editar 	Eliminar 	id_empresa
id_departamento_release 	INDEX 	31  	Editar 	Eliminar 	id_departamento_release
Tipo_Dep_UsFec 	INDEX 	1995  	Editar 	Eliminar 	id_tipo
id_departamento
id_usuario_fechou 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que pesquisei de forma simplória MySql não tem índices baseados em Funções.

 

Talvez a solução aí seria criar uma coluna redundante do tipo fechou? (0/1) e usá-la como índice.

 

Mas isto requer uma melhor análise do custo/benefício.

 

Isto poderia melhor também a codição de busca

 

... WHERE                                                   
        2 = IF (O.id_departamento_release = 0 , O.id_departamento, O.id_departamento_release)   AND O.id_usuario_fechou = 0 ...

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.