Apache Derby performance disappointing
7 Message(s) by 5 Author(s) originally posted in java databases
| From: James Appleby |
Date: Thursday, August 16, 2007
|
Hello,
I am currently adding Derby
support to an
application that already has
support for multiple
DBMS via JDBC. I have found it to be
significantly slower than
SQL Server or MySQL when performing the same
task. To provide this, I have created an exact duplicate
data base
within both Derby and SQL Server and ran the same
query on both,
gathering timings.
The test query returns about 16,000 rows from a
table with about
100,000 on it, grouping data using a timestamp that is converted to
the nearest second. This is one of the heaviest queries within the
application and what chosen to put the DBMS under the most strain. To
prevent
caching interferring with the result, I made sure to restart
the DBMS before running the query.
SQL Server was at least 4 times quicker returning the results compared
to Derby. I had
expect ed SQL Server to outperform Derby, but not by
such a huge factor. Is this result what is expected?
The initial test was based on a default, untuned installation. I then
followed tuning guidelines for Derby, increasing the page size to 32K
and increasing the maximum page count to far in excess of what should
be needed to return the amount of data I am testing. This gave some
improvements but it is still takes three times that of the same query
time on SQL Server.
As Derby is marketing itself on the same level as MySQL (
Apache
provide performance figures comparing it to this) then I anticipated
similiar performance, but instead it is taking twice as long as I
consider reasonable. Is this in
line with anyone elses experience?
| From: GArlington |
Date: Friday, August 17, 2007
|
wrote in message:
Hello,
I am currently adding Derby support to an application that already has
support for multiple DBMS via JDBC. I have found it to be
significantly slower than SQL Server or MySQL when performing the same
task. To provide this, I have created an exact duplicate database
within both Derby and SQL Server and ran the same query on both,
gathering timings.
The test query returns about 16,000 rows from a table with about
100,000 on it, grouping data using a timestamp that is converted to
the nearest second. This is one of the heaviest queries within the
application and what chosen to put the DBMS under the most strain. To
prevent caching interferring with the result, I made sure to restart
the DBMS before running the query.
SQL Server was at least 4 times quicker returning the results compared
to Derby. I had expected SQL Server to outperform Derby, but not by
such a huge factor. Is this result what is expected?
The initial test was based on a default, untuned installation. I then
followed tuning guidelines for Derby, increasing the page size to 32K
and increasing the maximum page count to far in excess of what should
be needed to return the amount of data I am testing. This gave some
improvements but it is still takes three times that of the same query
time on SQL Server.
As Derby is marketing itself on the same level as MySQL (Apache
provide performance figures comparing it to this) then I anticipated
similiar performance, but instead it is taking twice as long as I
consider reasonable. Is this in line with anyone elses experience?
I presume you created all indexes which exist on SQL
server ?
| From: James Appleby |
Date: Friday, August 17, 2007
|
The database schema and content are identical. All tables, views and
contraints including indexes exist within both. In your experience,
would you expect Derby to be so much less performant?
| From: Roedy Green |
Date: Friday, August 17, 2007
|
In your experience,
would you expect Derby to be so much
less performant?
Sun typically puts out only
reference implementations, not
high performance ones. It doesn't want to put its customers
out of business. If it did, it'd discourage anyone
developing Sun tools for fear Sun'd use its money and
expertise to destroy them.
--
Roedy
Green Canadian Mind Products
The JAVA Glossary
http://mindprod.com
| From: =?ISO-8859-1?Q?Arne_Vajh=F8j?= |
Date: Friday, August 17, 2007
|
wrote in message:
In your experience,
'd you expect Derby to be so much
less performant?
Sun typically puts out only reference implementations, not
high performance ones. It doesn't want to put its customers
out of business. If it did, it'd discourage anyone
developing Sun tools for fear Sun'd use its money and
expertise to destroy them.
And ?
SUN JAVA DB is just a Derby with support.
Derby is developed by Apache. They don't hold back
on developing products to please commercial vendors.
(before Apache it was
IBM and
Informix that owned the database
under the name Cloudscape, but it has been under Apache for
3 years now)
Arne
| From: =?ISO-8859-1?Q?Arne_Vajh=F8j?= |
Date: Saturday, August 18, 2007
|
wrote in message:
I am currently adding Derby support to an application that already has
support for multiple DBMS via JDBC. I have found it to be
significantly slower than SQL Server or MySQL when performing the same
task. To provide this, I have created an exact duplicate database
within both Derby and SQL Server and ran the same query on both,
gathering timings.
The test query returns about 16,000 rows from a table with about
100,000 on it, grouping data using a timestamp that is converted to
the nearest second. This is one of the heaviest queries within the
application and what chosen to put the DBMS under the most strain. To
prevent caching interferring with the result, I made sure to restart
the DBMS before running the query.
SQL Server was at least 4 times quicker returning the results compared
to Derby. I had expected SQL Server to outperform Derby, but not by
such a huge factor. Is this result what is expected?
My experience show that Derby perform well in INSERT, but are
clearly behind in SELECT.
So it may very well be as it is.
Arne
| From: Dyreatnews |
Date: Monday, August 27, 2007
|
James Appleby
<james.w.appleby@xxxxxxxxxxx> writes:
Hello,
I am currently adding Derby support to an application that already has
support for multiple DBMS via JDBC. I have found it to be
significantly slower than SQL Server or MySQL when performing the same
task. To provide this, I have created an exact duplicate database
within both Derby and SQL Server and ran the same query on both,
gathering timings.
You really should consider
subscribing to derby-user and ask your
question there. To get help you probably need to
include some more
details about your schema and the
load you are running.
As Derby is marketing itself on the same level as MySQL (Apache
provide performance figures comparing it to this) then I anticipated
similiar performance, but instead it is taking twice as long as I
consider reasonable. Is this in line with anyone elses experience?
For a given
type of load that is true. It may not be for your load.
--
dt
Next Message: INSERTINg a Clob in a portable way
Blogs related to Apache Derby performance disappointing
The Gears That Power the Tubes: Google Gears
IBM and Sun, which both currently support versions of the
Apache Derby database (originally developed by IBM under the Cloudscape moniker), are RedMonk customers, as is another embedded database supplier, db4objects.
...
Apache Derby performance disappointing
comp.lang.
java.databases:
Apache Derby performance disappointing.