@eronalves.bsky.social

Otimizar performance de escrita em SQL puro é trivial. Transações + bulk insert ou COPY em pgsql. No hibernate é bem mais complicado, pois ele exige algumas coisas. Por exemplo, uma das exigências é o id da entidade ser do tipo Sequence. Este tipo é suportado nativamente pelo pgsql +

A JVM so tem o melhor GC do mundo por conta de necessidade. Pensa que todo objeto em Java pede alocação na heap. Tu usa um array, vai para a heap, que guarda objetos, então são muitas indireções e muito overhead

Bild

Você usa hibernate envers e spring data? Tome cuidado! O envers não captura repository.deleteById, por um motivo muito simples: cada modificação em uma entidade dispara eventos dentro do hibernate, e o que o envers faz é capturar estes eventos e produzir os registros de auditoria. +

javarevisited.blogspot.com/2013/01/jdbc... Acho que o ponto mais importante e geral para o pessoal aprender sobre aceleração de escrita é agrupar todas as suas escritas em uma única transação. Todo ORM faz isso, utilizando contextos ou gerenciamento manual de transação. +

JDBC Batch INSERT and UPDATE example in Java with PreparedStatement

Java tutorial on How to use JDBC batch INSERT and UPDATE with PreparedStatement with example. You should always use batch updates for better performance, it's one of the JDBC best practice.

javarevisited.blogspot.com

Ultimamente tenho estado mais engajado em testes unitários com uma cultura que estimula a produção desses testes. Minha experiência demonstrou que testes mais sociáveis são melhores do que testes solitários. Até mesmo porque se escreve menos testes, e se testa várias partes do sistema de uma vez.