Lentidão em gravar arquivo

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

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

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Descobri qual é o problema de estar gravando o backup de forma lenta.

O problema é..... ANTIVÍRUS

Até aí... já seria problema...
Mas tem um problema maior: ANTIVÍRUS DEFAULT DO WINDOWS 10 !!!!!

Adicionando a pasta de arquivos como exceção, mais rápido.

Tá parecendo os programas de segurança de banco !!!

Quase 10 minutos pra gravar CADA ano de XML, e liberando a pasta no antivírus, cerca de 26 segundos.

Isso vai complicar....
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Lentidão em gravar arquivo

Mensagem por Itamar M. Lins Jr. »

Ola!
Eu disse que servidor que se preze de BD não tem antivírus!
Não tem nenhum navegador, só mesmo o BD, MySQL, MariDb, etc mais nada. Todas as portas TCP/UDP fechadas só a do BD aberta.
Nenhuma interface gráfica. Somente o SGBD lá fazendo e retornando as consultas.
Nesta época que estudava isso, usa o Linux com Reiser/FS, era e ainda é muito bom com gravação do arquivos rápido, puxava a tomada do interruptor e não perdia os dados. Pena que o cara que criou o ReiserFS, assassinou a esposa! Que triste isso, o cara tá preso.
https://pt.wikipedia.org/wiki/ReiserFS

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Ola!
Eu disse que servidor que se preze de BD não tem antivírus!
Só deixou passar um grande detalhe:
Quem falou de servidor?
É a gravação em disco mesmo.
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Lentidão em gravar arquivo

Mensagem por asimoes »

Esse processo de gravação não pode ser feito no servidor e executado nele?
►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)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

asimoes escreveu:Esse processo de gravação não pode ser feito no servidor e executado nele?
NÃO QUERO FAZER ISSO.

Só pra curiosidade, mas NÃO tem a ver com o problema:
backupsql.png
Vários backups do MySQL, e nem dá tempo do servidor registrar o processo.
Mas aqui ok, está desativado o antivírus pras pastas de aplicativo, nesta situação é normal demorar pra gravar em disco.

Se no backup é assim, e obrigatoriamente está sempre copiando (por partes), imaginem no uso normal.
É só pra mostrar como SQL é PHODA !!!
Muitos backups copiando do servidor, e a rede e o servidor ainda conseguem ficar livres !!!
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

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Mesmo assim....
Menos de 2 milhões de registros, e a previsão é 15 minutos...
Isso só dessa tabela, fora as demais.
backup.png
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

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Tinha usado hb_NTOS() pra ver se ficava mais rápido.... mas não dá, o Harbour é ruim pra tratar decimais.
Tem horas que o hb_Ntos() retorna 1.00000 quando deveria ser 1
Retornei minha função de converter número, que funciona melhor.
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

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

backup.png
Tudo bem, nesse cliente o backup roda depois da meia noite, automático.
Mas como estou testando conversão de versão, e NÃO retiro o backup mesmo do teste, tenho que esperar o backup.
20 minutos desde o post anterior, e ainda testando kkkk
Só dá pra saber se passou, depois que terminar o backup.
Não tenho certeza se ainda é o mesmo backup anterior, ou se já comecei outro depois de um erro.


Com certeza é um segundo backup, só não sei se quando postei fazia parte do primeiro ou deste segundo.
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

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Erro executando comando:-2147217900 [ma-3.1.6][5.7.12-log]Invalid default value for 'PDPEDREL'
CREATE TABLE IF NOT EXISTS JPPEDIDO ( ... PDPEDREL Int(11) NOT NULL DEFAULT ''
a diferença que mencionei do MariaDB.
é um campo numérico tendo como default espaço em branco... aí não dá.... rs
Mas o MariaDB só dá erro se for criar tabela, já o MySQL confere o comando mesmo que não crie a tabela.

É só comentário extra... mas vai começar o backup tudo de novo kkkk
Obrigatoriamente, meu aplicativo faz backup antes da conversão, mesmo que seja só teste na minha máquina.
E enquanto não completar a conversão, cria backup a cada tentativa de carregar o aplicativo.
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

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Pra restaurar a diferença é brutal.
backup.png
meia hora pra criar o arquivo, e alguns minutos pra restaurar.
O problema está no processamento local de backup/gravação em disco LOCAL.
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
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Lentidão em gravar arquivo

Mensagem por bencz »

José, sobre a conversão numerica...
Veja este simples programa que fiz para você ter uma ideia...

Código: Selecionar todos

function start()
    local nTest1 := 1.45668
    local nTest2 := 2
    local nTest3 := 3.45
    local nTest4 := 0.444
    local nTest5 := nil
    
    ? ALLTRIM(CSTR(nTest1)) + " -----> " + ALLTRIM(CSTR(CAST_TO_INT(nTest1)))
    ? ALLTRIM(CSTR(nTest2)) + " -----> " + ALLTRIM(CSTR(CAST_TO_INT(nTest2)))
    ? ALLTRIM(CSTR(nTest3)) + " -----> " + ALLTRIM(CSTR(CAST_TO_INT(nTest3)))
    ? ALLTRIM(CSTR(nTest4)) + " -----> " + ALLTRIM(CSTR(CAST_TO_INT(nTest4)))
    ? ALLTRIM(CSTR(nTest5)) + " -----> " + ALLTRIM(CSTR(CAST_TO_INT(nTest5)))
return nil

#pragma BEGINDUMP

#include "hbapi.h"   

HB_FUNC( CAST_TO_INT )
{
    int val = hb_parni(1);
    hb_retni(val); 
}

#pragma ENDDUMP
O resultado do programa é:

Código: Selecionar todos

1.45668 -----> 1
2 -----> 2
3.45 -----> 3
0.444 -----> 0
NIL -----> 0
Imagem
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão em gravar arquivo

Mensagem por JoséQuintas »

Acontece que nem sempre o número é inteiro.
TODAS as funções do Harbour falham pra essa conversão, inclusive hb_NTOS()
Tem número sem decimais e número com decimais.
NÃO quero fazer um campo por vez individualmente.

Vai ficar como está até o término da migração.
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
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Lentidão em gravar arquivo

Mensagem por bencz »

Humm....
Desconfio que o problema não seja no harbour... e sim, na propria CPU!!!
Isso se chama erro da mantissa do padrão IEEE 754, que é o padrão de números de ponto flutuantes utilizados pelas CPUs...

Quer um exemplo desse erro..., execute o seguinte código:

Código: Selecionar todos

function start()
    local nX := 0.1
    
    while nX != 1.0
        ? cstr(nX)
        nX += 0.1
    end
return nil
você vai ver que o código entra em um loop infinto, pois como o computador utiliza notação binário e como o decimal 0.1 em binário corresponde a um binário periódico (como a dízima periódica resultante do 1/3 que é 0.3...)
Então, possivelmente as funções que você está falando que não retornam o valor correto, estejam retornando o valor correto no "Ponto de vista" das funções, pois elas estão identificando que o numero é um numero de ponto flutuante, mas, a formatação para string não traz esse numero que está causando essa identificação, que possivelmente esteja la entre as ultimas casas possíveis do numero...

Uma alternativa, seria converter para string o valor e fazer uma "analise" do resultado da conversão... algo tipo...

Código: Selecionar todos

function start()
    ? formataNumero(1.000000000000000001)
    ? formataNumero(2.000045000000000001)
    ? formataNumero(3)
    ? formataNumero(4.00045)


    inkey(20)
return nil

function formataNumero(nNumero)
    local cResult := ''
    local aNumero := {}
    local cNumero := CSTR(nNumero)
    
    aNumero := HB_ATokens(cNumero, '.')
    if len(aNumero) >= 2
        if len(strtran(aNumero[2], '0', '')) == 0
            cResult := aNumero[1]
        else
            cResult := cNumero
        endif
    else
        cResult := aNumero[1]
    endif   
    
return cResult
Imagem
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Lentidão em gravar arquivo

Mensagem por bencz »

E relembrando... veja essa explicação que dei neste tópico: viewtopic.php?f=4&t=14869&p=87150
Eu deixei bem detalhado sobre este problema da mantissa
Imagem
Responder