Tentando localizar o erro
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Tentando localizar o erro
Deixei programação de lado... fui no mercado fazer compras...
Acho que já sei qual é o problema, o mesmo que acontecia com pedidos.
Preciso acabar com campos chave caractere - a mistura disso.
Dependendo da situação, acho que o MySQL despreza qualquer índice nesses casos.
Isso chegou a acontecer com pedidos.
Acho que já sei qual é o problema, o mesmo que acontecia com pedidos.
Preciso acabar com campos chave caractere - a mistura disso.
Dependendo da situação, acho que o MySQL despreza qualquer índice nesses casos.
Isso chegou a acontecer com pedidos.
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/
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/
Tentando localizar o erro
bom, isso não é para ser um problema... basta criar o índice...
Lembre-se somente, que na hora de criar o índice, existe uma ordem correta para se colocar os campos...
O campo, ESTRANSA, é o campo chave... os demais são os campos incluídos no índice....
Faça um teste com aqueles 3 indices que passei e veja se existe uma melhora na busca
Lembre-se somente, que na hora de criar o índice, existe uma ordem correta para se colocar os campos...
Código: Selecionar todos
CREATE INDEX JPESTOQUE_IDX ON JPESTOQUE (ESTRANSA, ESPORDUTO, ESDATLAN, ESTIPLAN, ESQTDE, ESCFPOP, ESCFOP);Faça um teste com aqueles 3 indices que passei e veja se existe uma melhora na busca
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Tentando localizar o erro
Nos clientes, IDCADASTRO é numérico, e nos pedidos era caractere.bencz escreveu:bom, isso não é para ser um problema... basta criar o índice...
O estoque é recém chegado ao MySQL, o campo de IDPRODUTO é caractere, mas no cadastro de produtos é numérico.
Essa mistura é normal no MySQL, mas conforme a situação causa uma lentidão tremenda,
LEFT JOIN ... ON JPESTOQUE.ESPRODUTO (VARCHAR) = JPPRODUTO.IDPRODUTO (INT)
Tinha me esquecido que isso aconteceu com pedidos e clientes, e somente em algumas pesquisas.
Por isso acho que deve ser a mesma coisa, mas agora com produtos.
NÃO é problema do MySQL, ele até faz muito em relacionar 1 com "000001".
Em querys mais simples isso funciona normalmente, mas em outras pode acontecer a lentidão.
O aplicativo vinha trabalhando como caractere, pro DBF, usando StrZero(x,6) na gravação.
No MYSQL procurei usar campos incremental, então tiveram que ser numéricos.
Pra gravação dupla, mantive caractere pra outros campos "não chave".
Há algum tempo estou deixando só numérico no aplicativo, e desvinculando dessa necessidade dos meus DBFs antigos/compatíveis.
Próximo passo:
Definitivamente só usar caractere na leitura/gravação de DBF - se ainda existir o DBF.
E no MySQL, obrigatoriamente deixar numérico em TUDO, não apenas aonde é chave primária.
Nota:
Não se trata do MySQL não aceitar número ou caractere.
É de usar código de produto no cadastro como sendo numérico, e no movimento de estoque o código do produto como caractere.
Digamos que durante a migração foi possível fazer errado, mas chegou a hora de fazer certo.
Ainda vou poder usar na gravação: SET CODIGO = "000001", mesmo se o campo for numérico.
Isso basta pra continuar com a gravação dupla, até acabar com o DBF de vez.
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/
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/
Tentando localizar o erro
Foi o que falei nesse comentário: viewtopic.php?f=57&t=24045#p139387
Verifique se os campos "<APELIDO JPTRANSA>.IDTRANSA" e "<APELIDO JPESTOQUE>.ESTRANSA" são do mesmo tipo e verifique a mesma coisa para o outro join
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Tentando localizar o erro
Não percebi, mas já tinha acontecido isso antes.bencz escreveu: Foi o que falei nesse comentário: viewtopic.php?f=57&t=24045#p139387
Já estava caminhando pra deixar tudo numérico.
Até comentei aqui no fórum: as telas sem os zeros ficam mais "limpas".
Então, estou no caminho certo, já estava "resolvendo" o problema, sem perceber que era esse o problema.
De qualquer jeito, todas as alterações agora são pra eliminar DBF, então... sem problemas alterar no banco de dados.
Só que agora vai ser mais pesado, talvez alterar até tudo de uma vez.
Tem que ficar em casa mesmo, em quarentena.... ótimo pra dar uma geral nos fontes.
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/
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/
Tentando localizar o erro
Onde baixa o profiler?JoséQuintas escreveu:Rodei o profiler e vi a falta de um índice, em uma tabela com 4 registros, que é a tabela "FYSCO_SituacaoProcuracoes"... ao criar o índice o tempo de execução da query caiu em 4ms....
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Tentando localizar o erro
Já achei no HeidiSQL
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Tentando localizar o erro
Onde?aSimoes
Já achei no HeidiSQL
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Tentando localizar o erro
Pra usar o SHOW PROFILE ALL; tem que deixar a caixa Perfil de Consultas, desmarcadajanio escreveu:Onde?
Código: Selecionar todos
SHOW PROFILE ALL;
SELECT
*
FROM
asaprev.cobrancaasaprev c
-- WHERE
-- c.CODIGO = '20735'
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Tentando localizar o erro
Bom dia!
Utilizo esse programa: https://www.devart.com/dbforge/mysql/st ... nload.html
Utilizo esse programa: https://www.devart.com/dbforge/mysql/st ... nload.html
Tentando localizar o erro
Gostei disso: EXPLAIN SELECT * FROM cadastrosocios
Código: Selecionar todos
MariaDB [test]> EXPLAIN SELECT * FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.a=t2.a AND t2.a=t3.a;
+------+-------------+-------+------+---------------+------+---------+------+------+--------------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+-------------+-------+------+---------------+------+---------+------+------+--------------------------------------------------------+
| 1 | SIMPLE | t1 | ALL | NULL | NULL | NULL | NULL | 3 | |
| 1 | SIMPLE | t2 | ALL | NULL | NULL | NULL | NULL | 3 | Using where; Using join buffer (flat, BNL join) |
| 1 | SIMPLE | t3 | ALL | NULL | NULL | NULL | NULL | 3 | Using where; Using join buffer (incremental, BNL join) |
+------+-------------+-------+------+---------------+------+---------+------+------+--------------------------------------------------------+
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Tentando localizar o erro
Agora tem que entender essas informações
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)


