2 votes

Temps de traitement élevés pour 5% du total des enregistrements utilisant le modèle JDBC de Spring 4.3.0 pour la logique d'insertion ou de mise à jour

Application Spring lisant environ 200 événements par minute à partir d'un sujet kafka et mettant à jour une seule table avec une clause where sur une combinaison de deux colonnes. Des index appropriés sont mis en place sur la clé composite.

Le temps de traitement pour l'insertion d'un enregistrement est presque constant (<30ms), mais pendant certaines heures, le temps de traitement atteint même 30 secondes pour une seule instruction d'insertion ou de mise à jour. Il n'y a aucune corrélation entre ces temps de traitement élevés et les pics de charge.

Jusqu'à présent, nous avons vérifié l'utilisation du processeur, la mémoire, le nombre de threads et les temps d'attente pour le verrouillage des lignes, mais il ne semble pas y avoir de problème. Veuillez nous suggérer d'autres éléments pour analyser ce problème.

Pile technologique utilisée pour les opérations de la base de données. Spring 4.3.0 Modèle Spring Jdbc. C3P0 Connection pool

Extrait de code

String stmt= //construct query;
jdbcTemplate.update(stmt);
logger.info("Insert event is successful");

Mise à jour de l'échantillon:-

    UPDATE tablename
SET
    column1 = 'string1',
    column2 = 'string2',
    column3 = 0.1,
    column4 = 'string3',
    column5 = 0.1,
    column6 = 'string4',
    column7 = to_timestamp('2020-10-21_08.00.02_861', 'YYYY-MM-DD HH24:MI:SS_FF')
WHERE
    compositeKeyA = 210
    AND compositeKeyB = '123';

0voto

devnull Points 570

Si c'est toutes les 30 secondes, il s'agit d'une valeur par défaut, par exemple le temps d'attente, le temps d'inactivité, etc. Avez-vous essayé d'augmenter le nombre de connexions mises en commun et de fermer les connexions inutilisées ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X