Very slow metadata extraction?
"R.W. Shore" <[email protected]>
| Newsgroups | gmane.comp.db.mckoi |
|---|---|
| Message-ID | <[email protected]> |
I have a database configured in server (not embedded) mode. Mckoi starts as a service. I haven't messed with the db.config file for this database, except to point the db and log paths to where I want the files. The particular schema I'm using contains about 1,000 tables, 3,000 procedures, and 3,000 triggers (one insert trigger per table, one update trigger/table, one delete trigger/table). The Mckoi server is running under Java 5.0 on a Win XP Pro (SP2) host; hardware is an AMD 64 processor. When the schema had only 500 tables and no triggers or procedures, I could extract metadata for the tables at about 3 minutes/100 tables. Now, however, it's taking about 60 minutes/100 tables. The CPU on the host machine is pegged, with the Mckoi service taking all available CPU cycles. There are no other users accessing the database. I'm doing a metadata.getColumns() call and a metadata.getPrimaryKeys() call for each table individually. (Yes, I understand that I can and maybe should do a single getColumns() call.) The service definition permits Mckoi to use as much as 512M of RAM. The status display shows that the service process that's eating up the CPU has less than 200M of either physical or virtual memory, so I don't think I'm in a GC thrash. Could this time increase be due to the lack of an index on the system tables that Mckoi uses to build the result set for getColumns() or getPrimaryKeys()? If not, any other suggestions on what's going on and perhaps what to do to get a reasonable response?