Hello,
I have a largish database - about 20GB. At some point, inserting rows
into it has become abysmally slow. I'm noticing that the bulk of the
time is spent in the method LogSystem.checkpoint(). I also see many
log files being created every second, a typical listing the database
files looks like this:
-rw-r--r-- 1 frank frank 262144 2009-02-12 20:47 ses.
22356.temp.db
-rw-r--r-- 1 frank frank 38584320 2009-02-13 13:51 ses.38397.log.db
-rw-r--r-- 1 frank frank 38584320 2009-02-13 13:51 ses.38398.log.db
-rw-r--r-- 1 frank frank 38584320 2009-02-13 13:51 ses.38399.log.db
-rw-r--r-- 1 frank frank 38584320 2009-02-13 13:51 ses.38400.log.db
-rw-r--r-- 1 frank frank 38584320 2009-02-13 13:51 ses.38401.log.db
-rw-r--r-- 1 frank frank 96 2009-02-13 13:51 ses.38402.log.db
-rw-r--r-- 1 frank frank 20166213680 2009-02-13 13:51 ses.data.db
-rw-r--r-- 1 frank frank 2751463472 2009-02-13 13:51 ses.index.db
-rw-r--r-- 1 frank frank 99 2009-02-12 20:47 ses.lock.db
-rw-r--r-- 1 frank frank 385 2009-02-12 20:47 ses.trace.db
The log files change all the time though. I am using the stable
version (1.0.79). Any suggestions? Is the disk summary so big now that
it saves a new log for every statement? I attach a typical stack trace
below.
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.write
(ByteArrayOutputStream.java:71)
- locked <0xbd654f68> (a java.io.ByteArrayOutputStream)
at java.io.DataOutputStream.write(DataOutputStream.java:71)
- locked <0xbd654f78> (a java.io.DataOutputStream)
at org.h2.store.DiskFile.getSummary(DiskFile.java:224)
- locked <0xb6a56d68> (a org.h2.engine.Database)
at org.h2.log.LogSystem.writeSummary(LogSystem.java:586)
at org.h2.log.LogSystem.checkpoint(LogSystem.java:561)
- locked <0xb6a56d68> (a org.h2.engine.Database)
at org.h2.log.LogSystem.add(LogSystem.java:541)
- locked <0xb6a56d68> (a org.h2.engine.Database)
at org.h2.store.DiskFile.addRecord(DiskFile.java:1031)
- locked <0xb6a56d68> (a org.h2.engine.Database)
at org.h2.store.Storage.addRecord(Storage.java:190)
at org.h2.index.BtreeIndex.updatePage(BtreeIndex.java:143)
at org.h2.index.BtreeLeaf.add(BtreeLeaf.java:86)
at org.h2.index.BtreeNode.add(BtreeNode.java:100)
at org.h2.index.BtreeNode.add(BtreeNode.java:100)
at org.h2.index.BtreeNode.add(BtreeNode.java:100)
at org.h2.index.BtreeNode.add(BtreeNode.java:100)
at org.h2.index.BtreeNode.add(BtreeNode.java:100)
at org.h2.index.BtreeNode.add(BtreeNode.java:100)
at org.h2.index.BtreeIndex.add(BtreeIndex.java:221)
at org.h2.table.TableData.addRow(TableData.java:107)
at org.h2.command.dml.Insert.update(Insert.java:96)
at org.h2.command.CommandContainer.update
(CommandContainer.java:69)
at org.h2.command.Command.executeUpdate(Command.java:206)
- locked <0xb6a56d68> (a org.h2.engine.Database)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal
(JdbcPreparedStatement.java:137)
- locked <0xb78a9740> (a org.h2.engine.Session)
at org.h2.jdbc.JdbcPreparedStatement.executeBatch
(JdbcPreparedStatement.java:1049)
....
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en
-~----------~----~----~----~------~----~------~--~---