executeQuery and busy waiting

Поиск
Список
Период
Сортировка
От Garrick Dasbach
Тема executeQuery and busy waiting
Дата
Msg-id 1056739442.24233.21.camel@bock
обсуждение исходный текст
Ответы Re: executeQuery and busy waiting  (Dave Cramer <Dave@micro-automation.net>)
Список pgsql-jdbc
I'm working on a project with Postgresql and I'm running into a strange
problem.

I have a Java Program running on the Database server that periodicly
connects to the Database and runs a pl/pgsql function.  This function
should run fairly fast, but could take several minutes based on the load
of the server and amount of information it needs to process.

Running the function from psql takes 40 seconds under no load and
minimal data, but when I run the function from java using JDBC it takes
20-30 minutes.

Checking top, this is a Linux system, I see that the java program takes
up 99% of the CPU when it's running this function through executeQuery.
Is executeQuery() doing a busy wait for the data from postgres?  It
seems a bit absurd that the executeQuery method would hijack 99% of the
CPU waiting for results and slowing everything else on the system down.

The second problem I am noticing is that if I move the java program to
another machine, to keep java from stealing all the CPU cycles, the
function still takes 20-30 minutes to run through java, but only takes
40 seconds to run through psql.  What's the deal?

Any help would be appreciated.

Garrick Dasbach

Software Developer
MusicRebellion.com, Inc.
Garrick@musicrebellion.com


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

Предыдущее
От: Manuel Gil Pérez
Дата:
Сообщение: [PATCHES] IPv6 patch doesn't work fine
Следующее
От: Dave Cramer
Дата:
Сообщение: Re: executeQuery and busy waiting