Web Imagens Vídeos Mapas Notícias Orkut Gmail mais »
Grupos visitados recentemente | Ajuda | Acessar
Página inicial dos Grupos do Google
Mysql melhoria de performance
Há um número excessivo de tópicos que aparecem em primeiro plano neste grupo. Para fazer com que este tópico apareça primeiro, elimine essa opção de um outro tópico.
Erro ao processar a solicitação. Tente novamente.
sinalizar
  4 mensagens - Recolher todas  -  Traduzir tudo para Traduzido (ver todos os originais)
O grupo no qual você está postando é um grupo da Usenet. As mensagens postadas neste grupo farão com que o seu e-mail fique visível para qualquer pessoa na internet.
Sua resposta não foi enviada.
Postagem publicada
 
De:
Para:
Cc:
Encaminhar para
Adicionar Cc | Adicionar Encaminhar para | Editar Assunto
Assunto:
Validação:
Com o objetivo de verificação, digite os caracteres que você vê na figura abaixo ou os números que ouvir ao clicar no ícone de acessibilidade. Ouça e digite os números que ouvir
 
Vitor de Oliveira  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 15 maio 2008, 14:57
De: Vitor de Oliveira <vito...@gmail.com>
Data: Thu, 15 May 2008 10:57:03 -0700 (PDT)
Local: Qui 15 maio 2008 14:57
Assunto: [OFF] Mysql melhoria de performance
Boa tarde pessoal estou com o seguinte problema na geracao de um
relatorio,
o Mysql esta demorando muito tempo para retornar resposta.

Alguem sabe como eu poderia melhorar a performance??

Segue abaixo a sql:

SELECT
 d.oidTipo, t.nome as tipo, d.oidSubtipo, s.nome as subtipo,

 (select count(*)
 from denuncia de, encaminhamento en
 where en.oidDenuncia = de.oidDenuncia

and date(de.dataSistema)
BETWEEN date('2006-01-01') AND date('2006-01-12')

 and de.oidTipo = d.oidTipo
 and de.oidSubtipo = d.oidSubtipo
 and en.oidStatusRetorno = 3) as Improcedente,
 (select count(*)
 from denuncia de, encaminhamento en
 where en.oidDenuncia = de.oidDenuncia

and date(de.dataSistema)
BETWEEN date('2006-01-01') AND date('2006-01-12')

 and de.oidTipo = d.oidTipo
 and de.oidSubtipo = d.oidSubtipo
 and en.oidStatusRetorno = 4) as 'Não Informado',
 (select count(*)
 from denuncia de, encaminhamento en
 where en.oidDenuncia = de.oidDenuncia

and date(de.dataSistema)
BETWEEN date('2006-01-01') AND date('2006-01-12')

 and de.oidTipo = d.oidTipo
 and de.oidSubtipo = d.oidSubtipo
 and en.oidStatusRetorno = 5) as 'Parcialmente Procedente',
 (select count(*)
 from denuncia de, encaminhamento en
 where en.oidDenuncia = de.oidDenuncia

and date(de.dataSistema)
BETWEEN date('2006-01-01') AND date('2006-01-12')

 and de.oidTipo = d.oidTipo
 and de.oidSubtipo = d.oidSubtipo
 and en.oidStatusRetorno = 6) as Procedente

 from denuncia d
 inner join tipo t on (d.oidTipo = t.oidtipo)
 inner join tiposubtipo ts on (ts.oidtipo = t.oidtipo)
 inner join subtipo s on ((s.oidSubtipo = ts.oidSubtipo) and
(s.oidSubtipo = d.oidSubTipo))
 inner join encaminhamento e on (d.oidDenuncia = e.oidDenuncia)
WHERE date(d.dataSistema)
BETWEEN date('2006-01-01') AND date('2006-01-12')
GROUP BY d.oidSubtipo
ORDER BY t.nome,s.nome;


    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Flávio Araújo  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 15 maio 2008, 15:32
De: Flávio Araújo <flavi...@gmail.com>
Data: Thu, 15 May 2008 11:32:32 -0700 (PDT)
Local: Qui 15 maio 2008 15:32
Assunto: Re: Mysql melhoria de performance
Qual versao do MySQL?

    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Assunto da discussão alterado para [OFF] Mysql melhoria de performance" de Frederico R. Martins
Frederico R. Martins  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 15 maio 2008, 15:56
De: "Frederico R. Martins" <fre...@gmail.com>
Data: Thu, 15 May 2008 15:56:10 -0300
Local: Qui 15 maio 2008 15:56
Assunto: Re: [ PHP - Google ] [OFF] Mysql melhoria de performance
Bom você deve rever os seus indicies, ver se os campos mais pesquisados
estão devidamente indexados...

E também dependendo da versão do mysql passe isso para stored... melhora
bastante a performance.

Vitor de Oliveira escreveu:


    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Tiago Gigli  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 15 maio 2008, 16:32
De: "Tiago Gigli" <ti...@gigli.com.br>
Data: Thu, 15 May 2008 16:32:00 -0300
Assunto: Re: [ PHP - Google ] Re: [OFF] Mysql melhoria de performance

cara... a primeira coisa eh vc realmente analisar os indices.. mas por mais
bem feitos q estejam, entenda a query q vc tah fazendo..
cada um desses parentesis fazendo subquery eh executada a cada linha do
resultado da sua consulta principal...
alem disso, vc tah usando count(*).. use count(1)..
fiz uma modificacao.. nela, o resultado será um pouco diferente... mas creio
que vc pode tratar isso no php na exibição...

precisa ver se a query q criei pra vc atende sua necessidade.. eu acredito
que sim...

SELECT
d.oidTipo,
t.nome as tipo,
d.oidSubtipo,
s.nome as subtipo,
status = CASE idSt
    WHEN 3 THEN 'Improcedente'
    WHEN 4 THEN 'Não informado'
    WHEN 5 THEN 'Parcialmente procedente'
    WHEN 6 THEN 'Procedente'
    ELSE 'Erro'
END
FROM
denuncia d
JOIN tipo t ON (d.oidTipo = t.oidtipo)
JOIN tiposubtipo ts ON(ts.oidtipo = t.oidtipo)
JOIN subtipo s ON ((s.oidSubtipo = ts.oidSubtipo) and
                  (s.oidSubtipo = d.oidSubTipo))
#join encaminhamento e on (d.oidDenuncia = e.oidDenuncia) ##nao referido na
query
JOIN (
    SELECT
    de.oidTipo,
    de.oidSubtipo,
    en.oidStatusRetorno,
    COUNT(1)
    FROM
    denuncia de
    JOIN encaminhamento en ON en.oidDenuncia = de.oidDenuncia
    WHERE
    en.oidStatusRetorno BETWEEN 3 AND 6 AND #apenas se houver outros status
nao necessarios
    DATE(de.dataSistema) BETWEEN DATE('2006-01-01') AND DATE('2006-01-12')
AND
    de.oidTipo = d.oidTipo AND
    de.oidSubtipo = d.oidSubtipo
    GROUP BY
    en.oidStatusRetorno
) stRet ON d.oidTipo = stRet.oidTipo AND
           d.oidSubTipo = stRet.oidSubTipo
WHERE
DATE(de.dataSistema) BETWEEN DATE('2006-01-01') AND DATE('2006-01-12')

On Thu, May 15, 2008 at 3:56 PM, Frederico R. Martins <fre...@gmail.com>
wrote:

--
Tiago Gigli
MyGSM: +55 (15) 8116-5168
Eml/MSN/GTalk: ti...@gigli.com.br
http://picasaweb.google.com/familia.gigli
http://tiago.gigli.com.br

    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Fim das mensagens
« Voltar às Discussões « Tópico recente     Tópico antigo »

Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade
©2009 Google