Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

diokhan

query muito lenta

Mensagens Recomendadas

diokhan

boas,

eu tenho um problema, eu tenho uma query na minha página que é para a parte da pesquisa, mas demora muito tempo para devolver resultados, é quase 30segundos de espera, já experimentei correr a query no phpmyadmin e demorou 0.9segundos a devolver os resultados, logo pude concluir que o problema não é da query, mas também não sei o que esta a atrasar a devolução dos resultados.

na query uso MATCH () AGAINST (), e os campos são índices

há alguma forma de alterar o tempo de espera ou assim das querys? :D


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Mede os tempos de ligação à base de dados, de execução da query e de construção dos resultados para apresentar ao utilizador.

Como dizes, o problema pode não estar na query, por isso antes de mexeres na mesma, tens de identificar qual a verdadeira causa da lentidão.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

e como posso medir o tempo de ligação, de execução e da construção dos resultados? há algum script em especifico?

a query não esta feita de base, basicamente, para pesquisar tenho 5 campos, e conforme o numero de campos que é preenchido que crio a query, tipo por exemplo, eu verifico se os campos estão preenchidos e depois adiciono os inner join os match against e assim para cada situação, porque cada campo vai buscar dados a uma tabela diferente, mas são informações interligadas, pode ser da query ser construída assim que a deixa lenta?


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Vamos por partes.

Pelo que contas o teste fizeste para ver a velocidade da query afinal não vale de muito, a não ser que tenhas feito exactamente a mesma query. Mas atenção que se correste a mesma query na tua aplicação e depois no phpmyadmin, o resultado provavelmente foi influenciado devido ao facto dos dados estarem em cache.

Quando à medição é simples de fazer, basta que mostres o tempo antes e depois de cada uma da operações (ou guardas numa variável e mostras o diferencial) ficas logo a saber quanto tempo demorou cada uma das partes.

Quanto à construção da query a resposta é: sim. Dado que a tua query é dinâmica, o plano de acesso aos dados muito provavelmente será diferente para cada uma das variantes/hipóteses. Mas não vale a pena mexeres na query, nem em qualquer lado, sem saberes de onde vem o problema.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
diokhan

ok, eu vou ver se descubro o problema, obrigado pela dica, qualquer coisa eu coloco aqui as minhas duvidas ou solução se encontrar :D


...Join the dark side...and get a free cookie...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.