Como já deu pra perceber, coisas que demoram minutos em DBF, pode ser feitas em segundos com SQL.
O SQL antigamente não tinha aquilo de sub-select, um SELECT a partir de outro SELECT.
Conclusão importante sobre isso, que fica nas entrelinhas:
1)
- DBF parou no tempo, é aquilo e somente aquilo, não há o que evoluir, o que melhorar ou o que agilizar
- SQL continua evoluindo. Ele acrescenta recursos ao seu aplicativo sem precisar trocar de linguagem de programação, pode até deixar as coisas mais rápidas, porque saiu uma versão do banco de dados mais nova, e não porque mexeu no aplicativo
2)
Geralmente console usa DBF, e GUI usa SQL
Quando o cliente diz pra fazer em GUI, pra clicar num botão e sair o relatório, ele pode estar considerando a velocidade do SQL porque considera a velocidade como sendo parte da GUI
Quando programadores falam mal de programa console, pode ser pelo mesmo motivo
3)
O que deixa muitos preocupados, é o fato de ter que aprender outra linguagem de programação, ou outro ambiente, como mobile/internet/etc. O que será se o Windows acabar ou se desktop acabar?
O SQL vai viver por muito tempo, e vai continuar evoluindo.
Se uma tela de consulta ou um relatório, podem ser resumidos a um único comando SQL... significa que aquilo está pronto pra qualquer coisa.
Acho que faltaram textos assim há 10 anos atrás.
Mas NÃO FORCE a migração agora, senão qualquer problema vai se tornar um inferno.
Como eu já disse antes, é começar a "brincar" com SQL.
Brincando bastante, vai transformar sua migração em uma brincadeira.
Acho que pra mim está sendo relativamente fácil, porque faz tempo que brinco com SQL.
Então... minha migração está como uma continuação da brincadeira que eu já fazia.
Acho que a gravação dupla DBF + MySQL ajudou muuuito.
Porque?
Tá funcionando em DBF, se funcionar em MySQL ótimo, senão fica em DBF mesmo pra alterar depois.
Um fonte tá difÃcil... deixo pra depois, e vou no mais fácil.
E esse fácil vai desvendando o que vou usar no outro mais difÃcil.
E por aà vai.
Está tudo funcionando em DBF e não precisa mexer?
Melhor ainda... pode testar SQL sem compromisso, tranquilamente, e vai brincando de fazer as coisas.
Poder testar tranquilamente é a melhor coisa que existe, porque.... é tranquilo
Não vejo a hora de estar tudo pronto mas... sem pressa...
Como eu disse por aqui: não é o aplicativo que precisa aprender SQL, sou EU.
Dá pra dizer que estou treinando SQL: vou pegando os módulos e fazendo testes pra ver o que acontece.
Se deu certo, e ficou mais rápido do que em DBF, já fica no aplicativo.
SQL é só começar. O tempo vai fazendo descobrir novidades.
ADO, SQLMIX, RDDSQL, HBMYSQL, qual delas?
Pra tirar proveito do servidor vai usar comandos SQL. TODAS elas aceitam isso.
Se quiser comparar, compare com usar o HeidiSQL: é um programa pra mexer no MySQL, onde você digita o comando e ele trás o resultado.
Compare isso com o tempo que o Harbour vai precisar pra fazer a mesma coisa usando uma dessas RDDs.
Se no HeidiSQL demora 1 segundo, mas com a LIB demora minutos.... então a LIB é problema
E... os comandos SQL vão ser os mesmos, não importa o que usar, então vai estar aprendendo/treinando SQL, seja qual for a escolha.
No começo interessa aprender SQL, se vai demorar 1 segundo ou até 10 segundos ou mais, tanto faz, vai demorar pra fazer seus testes, pra se acostumar com isso, então tanto faz se é muito rápido ou apenas mais rápido que DBF.
Usar um mais lento vai ser ruim?
De repente isso vai fazer com que descubra comandos mais rápidos.
Então... não importa... vai brincando... vai se acostumando... quando achar que chegou numa situação confortável, vai em frente e pronto.
E lembre-se que pode brincar com ADS local também, usar comandos SQL sobre DBFs.
ADS Local existe, é grátis, pode ser usado pra brincar com DBFs... então vamos brincar...
Vai servir pra treinar SQL, pra preparar pra outra base de dados, ou talvez até pra já deixar no aplicativo em DBF e já ficar mais rápido. Seja como for, não vai ser aprendizado perdido.
Repetindo: se alguém tivesse me explicado dessa forma, ou se eu tivesse entendido isso há 10 anos atrás.... talvez já estivesse tudo em SQL há 9 anos atrás.
Como só enxerguei isso no fim de 2019.... tudo bem... em 2020 vai estar resolvido...
E pra vocês que usam DBF.... é começar a brincar em 2020, e talvez migrar em 2020 mesmo, ou 2021, ou 2022, sem pressa, quando se sentir confortável vai fazer isso, por enquanto é ir treinando e se convencendo de que vale a pena.