Re: Re : Solaris Performance - Profiling (Solved)
От | Mark kirkwood |
---|---|
Тема | Re: Re : Solaris Performance - Profiling (Solved) |
Дата | |
Msg-id | 1017817233.1266.17.camel@spikey.slithery.org обсуждение исходный текст |
Ответ на | Re: Re : Solaris Performance - Profiling (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Re : Solaris Performance - Profiling (Solved)
Re: Re : Solaris Performance - Profiling (Solved) |
Список | pgsql-general |
On Wed, 2002-04-03 at 04:02, Tom Lane wrote: > > Hmm. Where exactly did you get those numbers from? I see 4118.54 sec > as the total CPU accounted for in the profile. > odd ...the call graph has 4047.53 and the flat graph has 4118.54 > > Hmm. Assuming that the profile data is trustworthy and the queries are > indeed the same (did you compare EXPLAIN output?), it seems that > Solaris' problem is a spectacularly bad qsort() implementation. > A bit surfing finds heaps of unhappy Solaris qsort users... apparently it cannot sort lists with many repeated items... so our GROUP BY will be causing it grief here > > It might be entertaining to snarf a qsort off the net (from glibc, > perhaps) and link it into Postgres to see if you get better results. > > regards, tom lane > Indeed it is - obtained qsort.c from Freebsd CVS and rebuilt Postgresql : The query now takes 6 seconds instead of 1 hour ! Thanks for an excellent suggestion. For those in need to a quick fix : I did a cheap and dirty mod to src/backend/utils/sort/Makefile changed OBJS = logtape.o -> OBJS = qsort.o logtape.o and copied qsort.c into this directory (had to comment out a couple of lines to compile under Solaris : /*#include <sys/cdefs.h> __FBSDID("$FreeBSD: src/lib/libc/stdlib/qsort.c,v 1.11 2002/03/22 21:53:10 obrien Exp $"); */ ) What do you think about providing something like this for the Solaris port ? (since its clearly quicker...) regards Mark
В списке pgsql-general по дате отправления: