On 2012-07-09 19:03, Thomas Mueller wrote:
I think before we try to fix the issue, we need to really understand
what the problem is. A simple, reproducible test case that includes a
micro-benchmark, and optionally uses the profiler tool would be nice.
I'm very hesitant to change the storage layer just because we *think*
there is way to improve performance.
Hi
I've checked in a new class to test this:
org.h2.test.todo.TestDropTableLarge
Regards, Noel Grandin
Profiler: top 3 stack trace(s) of 99 ms [build-167]:
44/47 (93%):
at java.io.RandomAccessFile.readBytes(Native Method)
at java.io.RandomAccessFile.read(RandomAccessFile.java:338)
at org.h2.store.fs.FileDisk.read(FilePathDisk.java:424)
at org.h2.store.fs.FileUtils.readFully(FileUtils.java:357)
at org.h2.store.FileStore.readFully(FileStore.java:276)
at org.h2.store.PageStore.readPage(PageStore.java:1285)
at org.h2.store.PageStore.getPage(PageStore.java:735)
at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:226)
at org.h2.index.PageDataNode.freeRecursive(PageDataNode.java:263)
at org.h2.index.PageDataIndex.removeAllRows(PageDataIndex.java:379)
at org.h2.index.PageDataIndex.remove(PageDataIndex.java:354)
at
org.h2.table.RegularTable.removeChildrenAndResources(RegularTable.java:672)
at org.h2.engine.Database.removeSchemaObject(Database.java:1638)
at org.h2.command.ddl.DropTable.executeDrop(DropTable.java:103)
at org.h2.command.ddl.DropTable.update(DropTable.java:113)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
at org.h2.test.todo.TestDropTableLarge.test(TestDropTableLarge.java:52)
at org.h2.test.todo.TestDropTableLarge.main(TestDropTableLarge.java:29)
2/47 (4%):
at java.io.RandomAccessFile.seek(Native Method)
at org.h2.store.fs.FileDisk.position(FilePathDisk.java:432)
at org.h2.store.FileStore.seek(FileStore.java:294)
at org.h2.store.PageStore.readPage(PageStore.java:1284)
at org.h2.store.PageStore.getPage(PageStore.java:735)
at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:226)
at org.h2.index.PageDataNode.freeRecursive(PageDataNode.java:263)
at org.h2.index.PageDataIndex.removeAllRows(PageDataIndex.java:379)
at org.h2.index.PageDataIndex.remove(PageDataIndex.java:354)
at
org.h2.table.RegularTable.removeChildrenAndResources(RegularTable.java:672)
at org.h2.engine.Database.removeSchemaObject(Database.java:1638)
at org.h2.command.ddl.DropTable.executeDrop(DropTable.java:103)
at org.h2.command.ddl.DropTable.update(DropTable.java:113)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
at org.h2.test.todo.TestDropTableLarge.test(TestDropTableLarge.java:52)
at org.h2.test.todo.TestDropTableLarge.main(TestDropTableLarge.java:29)
1/47 (2%):
at org.h2.store.PageLog.addUndo(PageLog.java:478)
at org.h2.store.PageStore.free(PageStore.java:1216)
at org.h2.store.PageStore.free(PageStore.java:1199)
at org.h2.index.PageDataLeaf.freeRecursive(PageDataLeaf.java:426)
at org.h2.index.PageDataNode.freeRecursive(PageDataNode.java:263)
at org.h2.index.PageDataIndex.removeAllRows(PageDataIndex.java:379)
at org.h2.index.PageDataIndex.remove(PageDataIndex.java:354)
at
org.h2.table.RegularTable.removeChildrenAndResources(RegularTable.java:672)
at org.h2.engine.Database.removeSchemaObject(Database.java:1638)
at org.h2.command.ddl.DropTable.executeDrop(DropTable.java:103)
at org.h2.command.ddl.DropTable.update(DropTable.java:113)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
at org.h2.test.todo.TestDropTableLarge.test(TestDropTableLarge.java:52)
at org.h2.test.todo.TestDropTableLarge.main(TestDropTableLarge.java:29)
packages:
97%: org.h2.store.fs
2%: org.h2.store
.
--
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.