Re: [HACKERS] having and union in v7beta

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [HACKERS] having and union in v7beta
Дата
Msg-id 3785.951933012@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] having and union in v7beta  (Jose Soares <jose@sferacarta.com>)
Ответы Re: [HACKERS] having and union in v7beta
Список pgsql-hackers
>>>>> But it's tough to believe that that accounts for a 3-to-4x
>>>>> slowdown of this query; certainly I don't see much performance
>>>>> difference on the datatypes I tried.  What datatypes are your fields,
>>>>> anyway?
>> 
>>>> 6.5 takes 0.463s
>>>> 7.0 takes 1.640s
>>>> the field type is CHAR(4)
>> 
>> Hmm.  I see no more than a few percent difference between 6.5 and
>> current.  There's something peculiar going on on your system.

I compiled up current code with profiling enabled (make PROFILE=-pg
if you want to try it), and found that actually nearly all of the
runtime forselect * from comuni union select * from comuni
is spent in the sort step; so I was on the wrong track in guessing
that there might be a performance problem in the new Unique coding.

I am not sure why you're seeing a performance differential for sorting.
Most of the cycles are going to go into bpcharlt(), which ultimately
calls strcoll() if you have USE_LOCALE defined.  That's probably not a
very fast operation, but that code's hardly changed at all since 6.5.
It should be the same speed...

Are you sure you compiled both 6.5 and 7.0 the same way (with or without
USE_LOCALE)?  Are you sure they're both running under the same locale
setting?

You might also try running the sort entirely in memory (no temp files).
Starting psql withsetenv PGOPTIONS "-S 10000"
(10 meg sort space) should do it.  I'd be interested to know how 6.5
and 7.0 stack up for you that way.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Ross J. Reedstrom"
Дата:
Сообщение: Re: [HACKERS] Re: bit types
Следующее
От: Jeff MacDonald
Дата:
Сообщение: Locking