Quem trabalha já com software como vocês fazem na empresa em que trabalham quando se tem um processamento final que fica rodando no banco uma consulta demorada, travando as tabelas do sistema?
Quem trabalha já com software como vocês fazem na empresa em que trabalham quando se tem um processamento final que fica rodando no banco uma consulta demorada, travando as tabelas do sistema?
Opa, Cleiton. Tudo bom?
O problema é com a interface gráfica que fica travada enquanto o script é executado ou no servidor do banco que fica com lock nas tabelas?
Se for na interface, no .NET você pode utilizar a classe Task
para executar o processamento em outra thread e liberar a thread princial - da interface gráfica - e o usuário não ficar com a impressão de que a aplicação travou. Temos um curso que introduz este assunto: C#: Paralelismo no mundo real.
Se for problema no banco, você poderia dar mais detalhes?
Fico no aguardo. Abs.
Bom dia, tudo ótimo. Da interface vou dar uma olhada no curso, mas sim o maior problema é o lock nas tabelas. Queria entender melhor sobre, pois o sistema tem uma parte que é o processamento das informações, esse processo gera em torno de 5 milhões de linhas em uma tabela de resultado final, o processo demora em torno de 30minutos a 1 hora, porém todo o sistema fica travado durante esse processo, se tem mais de um usuário logado, o problema fica pior, pois são várias pessoas trabalhando no sistema e se alguém estiver processando, fica inutilizável, entrei aqui na empresa a pouco tempo, gostaria de saber se tem algum curso de boas práticas em cima disso? Qual a melhor forma de se trabalhar com banco, quando se tem processamento pesados, sem travar o resto da aplicação. Abri neste tópico o assunto, pois não sei se o problema seria infra, se seria estrutura do sistema, ou se tem formas especificas de se trabalhar com banco dependendo a forma que o sistema foi estruturado.
Qual é o banco de dados que você está utilizando?
Na Alura temos as carreiras:
E nelas, os cursos abordam boas práticas, etc.
Talvez vocês precisem revisar a arquitetura da aplicação. Talvez seja o caso de criar outro banco de dados dedicado ao processamento de todos estes registros, por exemplo.
Utilizamos Oracle e SqlServer. Sobre a arquitetura o que seria interessante estudar? Como analisei que é uma dificuldade que a empresa tem, gostaria de entender mais sobre como melhorar e resolver todo o processo aqui.