In my java application (making use of Hibernate), I see following details from Hibernate Metrics
Code:
org.hibernate.engine.internal.StatisticalLoggingSessionEventListener Session Metrics {
46195 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
148413278 nanoseconds spent preparing 1300 JDBC statements;
203780356679 nanoseconds spent executing 1300 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
0 nanoseconds spent performing 0 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
414686772 nanoseconds spent executing 2 flushes (flushing a total of 1376 entities and 0 collections);
325171056 nanoseconds spent executing 650 partial-flushes (flushing a total of 107052 entities and 107052 collections)
The code flow is to prepare data for some target tables using data from source tables:
1- select records from multiple source tables (4 to 5 table),
2- do some processing, prepare data for final target tables (1-3 tables) .No change in source table entities at any point in the processing. Also there is no native query used.
3- Persist records in final tables.
I would like to get some pointers as to what to look for to identify what might be causing partial-flush.
thanks