Start a new topic

6.0.* performance issues

[This topic is migrated from our old forums. The original author name has been removed]

Ever since upgrading DbVisualizer from 5.1.1 to 6.0.*, the performance has been terrible.  I have used 6.0.1 and 6.0.4, both of which are MUCH slower than 5.1.1.

When comparing 5.1.1 and 6.0.4 on the same machine, connected to the same database, and using the same Oracle thin driver - 6.0.4 is always an order of magnitude slower while executing queries.  It doesn't seem to matter how many rows or columns are returned by the query - 6.0.4 consistently takes over 5X as long as 5.1.1 to display the results (for a simple query, 5.1.1 takes less than one second and 6.0.4 takes roughly 7 to 10 seconds).

I am running on a Dell XPS M1710 (Intel Core 2 Duo @ 2.33 GHz), Windows XP Pro, connecting to an Oracle 9i (9.2.0.7.0) database with the Oracle thin JDBC driver (9.2.0.8.0).

Any help would be appreciated as I would love to be able to use the newest version of DbVisualizer, but as it is now I am forced to use an older release.

Thanks in advance,
John

[This reply is migrated from our old forums.]

Re: 6.0.* performance issues
John, What Java version are you using? Are you using the same Java version for both DbVis 5.x and 6.x? Is the performance different in general or only when accessing the database? If only when accessing the database, what metrics (from the Log) do you get for a SQL statement that is executed in the SQL Commander? Regards Roger
[This reply is migrated from our old forums. The original author name has been removed]
[Attachment has been removed.]

Re: 6.0.* performance issues
Thanks for the reply Roger.

I am using the same Java version for both versions of DbVisualizer:
Java VM:  Java HotSpot(TM) Client VM
Java Version:  1.5.0_12-b04
Java Vendor:  Sun Microsystems Inc.

Yes, the performance difference is only apparent when accessing the database (when the results are finally displayed both versions of the app are very responsive).


For this comparison, I am executing "select * from table_foo" -the table I'm querying has ~3,000,000 rows and ~140 columns...

There are some slight differences between the two versions' logs (which I have attached)...

One difference I can see in the logs is that "Sch" is null in version 6.0.4, but populated in version 5.1.1...

When executing a query in 6.0.4, the "Command Status:" label shows "Fetching Result Set... 1000 rows" for several seconds (the number of rows quickly climbs to 1000, then stays there for a few seconds.)  And although the log only shows about 2 seconds between the first and last debug messages, it actually took about 8 seconds (wall clock timing) for the results to appear in the Result Set tab...

Thanks again,
John

[This reply is migrated from our old forums.]

Re: 6.0.* performance issues
John, Thanks for the details. The only thing I can think of is that the virtual memory available for the two installations of DbVisualizer is different. Check this in the DBVIS-HOME\dbvis.vmoptions file. The default setting is -Xmx256m (256 MB). Please check these. Regards Roger
[This reply is migrated from our old forums. The original author name has been removed]

Re: 6.0.* performance issues
Thanks Roger.

My Java heap was at the default level (256M) - I increased it to 512M but this didn't seem to have any effect - my typical usage of DbVis never exceeds about 75M...

I also connected to the database through a p6spy driver (wrapping the standard Oracle thin driver), which lets me see detailed activity at the driver level - the amount of time spent executing the query and reading the result set is a small percentage of the overall time (from a UI perspective).  Here is a snippet from the spy.log output:

1191279248234|0|0|statement||select sys_context( 'userenv', 'current_schema' ) from dual
1191279248359|31|0|statement|select * from tinetti_connection|select * from tinetti_connection
1191279248406|-1||resultset|select * from tinetti_connection|<column values>
... (statement repeats once for each row returned)
1191279249281|-1||resultset|select * from tinetti_connection|<column values>

According to this, less than one second is spent executing the query and iterating over the result set...However it took ~8 seconds for the results to display...

Also, there is basically no CPU or disk activity...

Hope this helps you - I don't have any idea what the issue is (I had the same exact issue on another computer using versions 5.1.1 and 6.0.1), I guess I'll just have to stick with version 5.1.1 for now...

If there's anything I can do to help you (or anybody reading this) figure it out please let me know - you can reach me at john.tinetti@oracle.com

Thanks for your help,
John
[This reply is migrated from our old forums.]

Re: 6.0.* performance issues
John, A simple test: What happen if you qualify the table name with the schema? Regards Roger
[This reply is migrated from our old forums. The original author name has been removed]

Re: 6.0.* performance issues
Roger,
That fixed the problem - I have to admit I thought that was a crazy suggestion :)

It's not quite ideal being forced to prefix everything with the schema name, but the app is very usable now - thanks!

Hopefully this gives you some insight into the root cause so you can fix it in a future release/patch ;)

Thanks again!
-John
[This reply is migrated from our old forums.]

Re: 6.0.* performance issues
Great John! This will be fixed in the next version. Thanks again for your detailed reports and testing. Best Regards Roger