Problema/Dúvida em SELECT com function

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema/Dúvida em SELECT com function

Mensagem por JoséQuintas »

mysql.png
Esse select foi muito demorado, pra mostrar um único registro.
Demorou quase 3 minutos.
Por acaso o MySQL primeiro resolve, pra só depois pegar o primeiro?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema/Dúvida em SELECT com function

Mensagem por JoséQuintas »

mysql2.png
Acho que sim.
Mesmo processamento.
Apenas filtrei o que interessava primeiro.
Reduziu de 2 minutos e 40 para 0,031 segundos.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema/Dúvida em SELECT com function

Mensagem por JoséQuintas »

JoséQuintas escreveu:Reduziu de 2 minutos e 40 para 0,031 segundos.
Só aproveitando:
Já comentei por aqui: se a consulta demorar mais de 3 segundos, considere que pode ter algo errado no comando.
Pra quem está acostumado com DBF, onde 3 minutos pode ser relativamente normal, pode achar que em SQL isso também é normal.
Neste caso aqui, mudou de 160 segundos para 0.031 segundos, o que é uma diferença gigantesca.

Como eu estava testando a rotina de gerar XML.... pensei que era problema nela... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema/Dúvida em SELECT com function

Mensagem por JoséQuintas »

A propósito....

Sendo assim, demorou 160 segundos pra gerar XML de informações adicionais pra 140 mil notas, 1000 notas por segundo.
Pra quem vai gerar uma de cada vez.... tá bom demais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema/Dúvida em SELECT com function

Mensagem por JoséQuintas »

Outra coisa que não comentei:

Esse teste foi no MariaDB.
Não sei se o MySQL otimizaria melhor isso.

Código: Selecionar todos

select funcao( chave ) from tabela order by chave limit 10

Código: Selecionar todos

select funcao( chave ) from 
   ( select chave from tabela order by chave limit 10 ) as a
Na primeira, o MariaDB só fez o filtro depois de fazer a função com tudo - 200.000 pedidos.
Na segunda, o MariaDB só fez para os filtrados.

Achei que pelo filtro não depender da função ele seria aplicado logo de início, mas não foi isso que aconteceu.
Isso faz pensar se não acontece com outras queries.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder