Clipper On Line • Ver Tópico - Velocidade de DBF em rede

Velocidade de DBF em rede

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Velocidade de DBF em rede

Mensagempor JoséQuintas » 19 Out 2018 14:29

Já teve muita pergunta sobre isso por aqui.

Vejam um teste simples que acabei de fazer com SSD.

ssd1.png


ssd2.png


A velocidade de cópia foi 1MB com arquivos pequenos, e 90MB com um arquivo único de 20GB.

A cópia é feita por blocos.
Em arquivos pequenos, o bloco é um arquivo, e em arquivos grandes, o bloco é o tamanho máximo.

Em DBF, o bloco é um único registro.
Em SQL, o bloco é o tamanho máximo, ou melhor, depende da consulta SQL.

Vamos supor que vai ler 1.000 registros, com o tamanho de 500 bytes cada, o que dá 500mb.
E apenas pra efeito de aprendizado, vamos supor que cada bloco demore 1 segundo, o mesmo das imagens do SSD.

Ler um registro por vez no DBF, demoraria 500 segundos, 1MB x 500
Ler um registro por vez no SQL, demoraria 500 segundos, 1MB x 500
Já ler tudo de uma vez no SQL, demoraria 6 segundos, 90MB x 6

usando DBF fica lento, usando SQL igual DBF fica lento, usando SQL como deve ser fica rápido.

Tem rede 10MB, 100MB, 1000MB, tem internet mais rápida e mais lenta.
Tirar o máximo de proveito disso, com DBF não dá, e nem usando SQL igual DBF, porque a quantidade de informação por vez fica limitada.

SQL, neste caso, está simbolizando uma aplicação cliente/servidor. Pode ser MySQL, SQL Server, etc., e geralmente trabalhamos através de comandos SQL.

É isso que confunde, a gente pensa que com DBF, por trazer um pouco de cada vez a rede vai ficar livre e rápida, e não vai haver desperdício, e na prática é o contrário.
Seria igual usar um caminhão pra carregar 50.000 tijolos.
Se carregar um tijolo de cada vez, o caminhão vai poder correr bastante 120km/hora, mas vai demorar pra terminar o serviço, vai ter que fazer 50.000 viagens.
Se carregar todos os tijolos de uma vez, o caminhão pode até ter que andar mais devagar digamos 40kmb/hora, mas vai trazer tudo de uma vez, o que dá um resultado mais rápido.
1 viagem contra 50.000 viagens...1 viagem que demora 3 vezes mais, se considerar 1 segundo pra cada viagem, um de cada vez demora 50.000 segundos, e tudo junto demora 3 segundos.

Isso também confunde: o DBF começar mais rápido, não significa que vai terminar mais rápido.

Por isso a gente fala que pra trabalhar com SQL precisa esquecer o DBF, porque temos que avaliar de forma diferente cada um deles.
No DBF avaliamos índices prontos, pra agilizar a pesquisa/resultado, acessar o mínimo de registros possível.
No SQL... isso também, mas avaliamos como trazer mais resultado com menos pesquisas ao servidor.

Achei que essa cópia seria um bom exemplo pra tirar dúvidas de quem ainda tem.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Velocidade de DBF em rede

Mensagempor JoséQuintas » 19 Out 2018 14:43

Só não entendi uma coisa....
Se a velocidade do SSD é a mesma do HD, mas a velocidade do HD é em Gigabits, e o SSD é em Megabits...
Como pode o SSD deixar o computador mais rápido?

ssd3.png


Pelo menos pra iniciar o Windows é mais rápido com SSD do que com HD....
Confuso isso...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Velocidade de DBF em rede

Mensagempor alxsts » 19 Out 2018 14:59

Olá!

JoséQuintas escreveu:Ler um registro por vez no DBF, demoraria 500 segundos, 1MB x 500

Demoraria mais de 8 minutos por registro! Tem certeza?

Acho que o tipo de arquivo não interfere. Vai copiar o que mandar, não importa se DBF, EXE, SQL...

Copiar arquivos, à primeira vista, parece uma tarefa fácil mas envolve muita coisa. Inside Vista SP1 File Copy Improvements.
O artigo trata do Windows Vista. Atualmente, deve ser igual ou melhor.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Velocidade de DBF em rede

Mensagempor JoséQuintas » 19 Out 2018 15:33

Foi mais pra dar uma idéia do porquê, e não pra mostrar a diferença exata.
Na prática com certeza as medidas são outras.

Foi o que eu tentei chamar a atenção aqui:
"É apenas pra efeito de aprendizado, vamos supor que cada bloco demore 1 segundo, o mesmo das imagens do SSD."

E depois mencionando a velocidade do caminhão:
"Se carregar todos os tijolos de uma vez, o caminhão pode até ter que andar mais devagar digamos 40kmb/hora"

Mostrando que a velocidade de blocos não é sempre igual, mesmo no caminhão poderia variar a quantidade de tijolos e os km/hora em cada viagem.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Velocidade de DBF em rede

Mensagempor alxsts » 19 Out 2018 17:31

Olá!

Entendi.

Fez-me lembrar do Norton Utilities. Acompanhavam o pacote alguns livros, entre eles o Norton Hard Disk Companion que disseca o funcionamento dos HDs...
Anexos
Capturar.JPG
Capturar.JPG (20.06 KiB) Visualizado 2715 vezes
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Velocidade de DBF em rede

Mensagempor JoséQuintas » 19 Out 2018 18:12

Por falar no Norton Utilities, o que sobrou dele?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Velocidade de DBF em rede

Mensagempor alxsts » 19 Out 2018 18:54

Olá!

Em 1990 a Peter Norton Computing foi vendida para a Symantec. Embora ele não tenha nada mais a ver com o produto, o nome dele foi mantido. A versão mais atual do Symantec Norton Utilities é a 16.0.0.126, lançada em 26 de agosto de 2012 (Wikipedia).
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Velocidade de DBF em rede

Mensagempor rubens » 20 Out 2018 10:18

Bom dia..

Eu estou fazendo uns testes com dbf temporários na memória e estou tendo bons resultados.
O que fazia antes, abria o arquivo em rede e fazia as pesquisas nesse arquivo em rede.
Agora crio um estrutura vazia na memória e copio os dados do arquivo para a memória..
Daí trabalho nesse arquivo temporário na memória. Uso todos os recursos de operações no arquivo. Inclusive consultar com set filter to $ e fica extremamente rápido e o melhor não preciso me preocupar com permissões já que o arquivo está na memória. Fechou o arquivo, apaga automaticamente.
O único inconveniente é que é uma cópia, daí tem que ficar relendo o arquivo físico.
Me ajudou bastante... rede com dois computadores não preciso mais instalar Server com TS.
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Velocidade de DBF em rede

Mensagempor rochinha » 20 Out 2018 20:55

Amiguinhos,

rubens
Se voce usar scope não precisa criar nenhum temporário, você pode ter uma base de trocentos registros e dar um scope com base na indice atual e lançar seus itens que serão filtrados enquanto o mesmo estiver ligado.

Aqui tem uns testes
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Velocidade de DBF em rede

Mensagempor Itamar M. Lins Jr. » 22 Out 2018 09:45

Ola!
Oxi!!! Quem disse que esse seu teste está correto ?
Ler um registro por vez no DBF, demoraria 500 segundos, 1MB x 500
Ler um registro por vez no SQL, demoraria 500 segundos, 1MB x 500
Já ler tudo de uma vez no SQL, demoraria 6 segundos, 90MB x 6


Rapaz, esse seu teste não tem nada a ver.
Uma coisa é copiar um ARQUIVO, xCopy/Copy etc... outra coisa é usar os comandos do RDD/SQL.
Um arquivo pequeno, tem inicio e fim, e existe um perda de velocidade só para identificar na FAT e depois localizar no HD onde ele está, e pode está todo fragmentado...Tem muita coisa ai que vc não levou em consideração em seu teste.
O DBF pode se muito mais rápido do que um MYSQL da vida. Isso depende de N fatores, antivirus, HUB, placas de rede etc.. e do principal o SO.
Tem que aprender sobre TAMANHO DO CLUSTER... na hora que particionar o HD, sistema de arquivos FAT/NTFS/RAISERNF/EXT4 etc...
Cluster maiores mais lento, menores mais rápido, só que não suporta grandes arquivos acima de 4Gi?... nem lembro mais... Isso aprendi lá atrás na época de particionar rede Novell com aqueles disquetes na mão dando erro de leitura...aff

https://support.microsoft.com/pt-br/help/140365/default-cluster-size-for-ntfs-fat-and-exfat

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Velocidade de DBF em rede

Mensagempor Itamar M. Lins Jr. » 22 Out 2018 09:51

Ola!
Em DBF, o bloco é um único registro.

Oxi !!!
Como assim professor ?
Um DBF pode ter um único registro(recno) e ter 4TB... Só gravar o conteúdo/zip em um campo memo.
Ou o DBF ter CAMPOS(fields) enormes...etc...

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Velocidade de DBF em rede

Mensagempor Itamar M. Lins Jr. » 22 Out 2018 10:10

Ola!
É isso que confunde, a gente pensa que com DBF, por trazer um pouco de cada vez a rede vai ficar livre e rápida, e não vai haver desperdício, e na prática é o contrário.
Seria igual usar um caminhão pra carregar 50.000 tijolos.
Se carregar um tijolo de cada vez, o caminhão vai poder correr bastante 120km/hora, mas vai demorar pra terminar o serviço, vai ter que fazer 50.000 viagens.
Se carregar todos os tijolos de uma vez, o caminhão pode até ter que andar mais devagar digamos 40kmb/hora, mas vai trazer tudo de uma vez, o que dá um resultado mais rápido.
1 viagem contra 50.000 viagens...1 viagem que demora 3 vezes mais, se considerar 1 segundo pra cada viagem, um de cada vez demora 50.000 segundos, e tudo junto demora 3 segundos.


Tá confundindo alhos com bugalhos.
Como trazer pouco de cada vez ?
Traz o que for solicitado. Oxi... tá equivocado seu raciocínio. Se o DBF o campo tiver 200 char e no SQL a mesma coisa a velocidade irá depender de n fatores, não vai trazer o field de 200 char um caractere por vez... porque é DBF. Traz o que cabe na memória/configuração do RDD/Motor SQL... se usar SWAP em disco... se for TCP, etc... isso não é limitação de DBF ou SQL... eu hein ?
Podemos ler no LetoDBf por exemplo:
 * increase socket buffers to 64K if OS default is smaller 

    + compression for LetoFileWrite() and LetoMemoWrite()
    % increase max receive block size: 0x7FFFFFFF aka 2GB - 32MB
    ; may test such big blocks handles



Vai depender disso ai em cima em qualquer motor SQL ou RDD. Não é porque é DBF. E mais os outros fatores citados que determinam a velocidade da aplicação.
Memória RAM livre, conta muito nestes casos também.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Velocidade de DBF em rede

Mensagempor Itamar M. Lins Jr. » 22 Out 2018 12:22

Ola!
Por isso a gente fala que pra trabalhar com SQL precisa esquecer o DBF, porque temos que avaliar de forma diferente cada um deles.
No DBF avaliamos índices prontos, pra agilizar a pesquisa/resultado, acessar o mínimo de registros possível.
No SQL... isso também, mas avaliamos como trazer mais resultado com menos pesquisas ao servidor.


Olha, pelo que sei, o volume que irá trafegar na requisição que torna lento ou rápido, entre outras coisas.
Não tem nada a ver com DBF. Se nós usamos mapeamento, TODO o DBF fica indo para lá e para cá na rede.
Mesma coisa se abrirmos um DOC ou TXT enorme, vai depender de como os leitores/editores de DOC´s e TXT´s trabalham.
Se um leitor EDIT(DOS) nem capacidade tem de abrir todo o TXT, vai cortar ele, já outro pode demorar porque está jogando na memória todo o conteúdo.
Imagine 10 pessoas alterando e lendo e inserindo nesse TXT ?
Agora imagine que existe um MOTOR servido a essas 10 pessoas, entregando apenas os pedaços do que forem solicitados, não o TXT todo.(LETODBF/MYSQL)
Já o TXT todo indo e vindo na rede, pelo NOTEPAD, esse é o DBF mapeado, sem nenhum engenho(motor) servindo as requisições(Leitura/Gravação).

Por isso usar NetIO resolve em 100% os problemas de corrupção ou LetoDBf ou comprar o ADS...
Isso sem falar nos produtos da tal CURAÇAL ? que é onde o Pritpal trabalha e tem SQL etc... tudo com DBF.
DBF ou (X/Y/Z enfim qualquer banco relacional) vai depender de muita coisa... há quem prefira Mysql outros Firebird, uns tem mais outros menos recursos.

Podemos usar esse ideia até com um editor de filmes, imagine 10 pessoas editando um filme de 5GB ao mesmo tempo ?

Tudo conta nessas horas, antivirus, sistema operacional, sistema de arquivos, memória ram, velocidade de hd, placa mae, placa de rede, hub, etc... Se a pessoa está com o chrome/firefox aberto... etc, etc...

E se no final do serviço a ultima pessoas que alterar o filme, a rede cair na hora da gravação final e só gravar a alteração de 5minutos do filme ?
Esse é cenário do DBF mapeado.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 15 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro