Обсуждение: General key issues when comparing performance between PostgreSQL and oracle

Поиск
Список
Период
Сортировка

General key issues when comparing performance between PostgreSQL and oracle

От
Brian Fehrle
Дата:
Hi all (Hopefully this is the correct mailing list for this).

I'm working on performance tuning a host of queries on PostgreSQL 9.2
from an application, each query having its own issues and fixes, however
from what I understand this application runs the exact same queries on
the exact same data in half the time on oracle and SQL server.

Are there any known differences between the database systems in terms of
query planners or general operations (sorting, unions) that are notable
different between the systems that would make postgres slow down when
executing the exact same queries?

It's worth noting that the queries are not that good, they have issues
with bad sub-selects, Cartesian products, and what looks like bad query
design in general, so the blame isn't completely with the database being
slow, but I wonder what makes oracle preform better when given
not-so-great queries?

I know this is rather general and high level, but any tips or experience
anyone has would be appreciated.


Thanks,
- Brian F



Re: General key issues when comparing performance between PostgreSQL and oracle

От
Samuel Gendler
Дата:



On Tue, Jul 16, 2013 at 9:51 AM, Brian Fehrle <brianf@consistentstate.com> wrote:

Are there any known differences between the database systems in terms of query planners or general operations (sorting, unions) that are notable different between the systems that would make postgres slow down when executing the exact same queries?


yes.

But unless you provide more detail, it's impossible to say what those differences might be.  In all probability, postgresql can be configured to provide comparable performance, but without details, who can really say?
 

Re: General key issues when comparing performance between PostgreSQL and oracle

От
Scott Marlowe
Дата:
On Tue, Jul 16, 2013 at 10:51 AM, Brian Fehrle
<brianf@consistentstate.com> wrote:
> Hi all (Hopefully this is the correct mailing list for this).
>
> I'm working on performance tuning a host of queries on PostgreSQL 9.2 from
> an application, each query having its own issues and fixes, however from
> what I understand this application runs the exact same queries on the exact
> same data in half the time on oracle and SQL server.
>
> Are there any known differences between the database systems in terms of
> query planners or general operations (sorting, unions) that are notable
> different between the systems that would make postgres slow down when
> executing the exact same queries?
>
> It's worth noting that the queries are not that good, they have issues with
> bad sub-selects, Cartesian products, and what looks like bad query design in
> general, so the blame isn't completely with the database being slow, but I
> wonder what makes oracle preform better when given not-so-great queries?
>
> I know this is rather general and high level, but any tips or experience
> anyone has would be appreciated.

Here's the thing. The Postgres team is small, and they have to choose
wisely what to work on. So, do they work on making everything else
better, faster and more reliable, or do they dedicate precious man
hours to making bad queries run well?

Fact is that if the query can be made better, then you get to do that.
After optimizing the query, if you find a corner case where
postgresql's query planner is making a bad decision or where some new
db method would make it faster then it's time to appeal to the
community to see what they can do. If you don't have the time to fix
bad queries, then you might want to stick to Oracle or MSSQL server.
OR spend the money you'd spend on those on a postgres hacker to see
what they can do for you.


Re: General key issues when comparing performance between PostgreSQL and oracle

От
Tom Lane
Дата:
Scott Marlowe <scott.marlowe@gmail.com> writes:
> On Tue, Jul 16, 2013 at 10:51 AM, Brian Fehrle
> <brianf@consistentstate.com> wrote:
>> I'm working on performance tuning a host of queries on PostgreSQL 9.2 from
>> an application, each query having its own issues and fixes, however from
>> what I understand this application runs the exact same queries on the exact
>> same data in half the time on oracle and SQL server.
>>
>> It's worth noting that the queries are not that good, they have issues with
>> bad sub-selects, Cartesian products, and what looks like bad query design in
>> general, so the blame isn't completely with the database being slow, but I
>> wonder what makes oracle preform better when given not-so-great queries?

> Fact is that if the query can be made better, then you get to do that.

Another point worth making here: we often find that ugly-looking queries
got that way by being hand-optimized to exploit implementation
peculiarities of whichever DBMS they were being run on before.  This is
a particularly nasty form of vendor lock-in, especially if you're
dealing with legacy code whose current custodians don't remember having
done such hacking on the queries.

I'm not necessarily claiming that your particular cases meet that
description, since you're saying that the queries perform well on both
Oracle and SQL Server.  But without details it's hard to judge.  It
seems most likely from here that your first problem is a badly tuned
Postgres installation.

            regards, tom lane