pqReadData() error

Поиск
Список
Период
Сортировка
От Imtiaz. S. M
Тема pqReadData() error
Дата
Msg-id 384B6971.2A893599@yahoo.com
обсуждение исходный текст
Ответы Re: [SQL] pqReadData() error  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-sql
Check this out.

I have a table with the following structure.

ip_ad    char(20)
type      int2
bytes    int8
dates    datetime

Newest data keeps getting filled every hour into the table and the
oldest one hour data gets deleted.  So you have the network traffic data
for the last one day in this table which consists of 12 one hour summary
blocks. Now to delete the oldest data I use the following SQL queries.

create table tempdates as select distinct dates from daydata;
delete from daydata where dates in (select b.dates from tempdates a,
tempdates b where a.dates-b.dates > '22 hours');

So this deletes data from the table where the data is more than 1 day
old.

This works fine if the no. of rows are very small. But in my case
approximately 500 new rows get inserted and 500 oldest rows get deleted
every one hour. The query takes a long time and then gives me the
following error

"pqReadData() -- backend closed the channel unexpectedly.                   This probably means the backend terminated
abnormally before or while processing the request.
We have lost the connection to the backend, so further processing is
impossible. Terminating."

But it works efficiently if I give the following queries instead of the
above one. All I do is replace the "in" with "="

create table tempdates as select distinct dates from daydata;
delete from daydata where dates =(select b.dates from tempdates a,
tempdates b where a.dates-b.dates > '22 hours');

But unfortunaltely for me I cannot use the above query because sometimes
multiple rows might be retrurned from the subquery ie when some data is
lost in between.

Also if I substitute the subquery with actual values for dates , the
query works really fast without giving any errors.

I have tried all possible combinations of indexing also. Still I get the
same error.

Is ther any other way to work around it.

I am using Postgres version 6.5.1 on Linux 2.0.36 Kernel ,Redhat 5.2 ,
Pentium PII 350 Mhz
I have 32MB of Ram.

Thanx in advance

regards
Imtiaz



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [SQL] Howto to force NULL rows at the bottom ?
Следующее
От: Dirk Lutzebaeck
Дата:
Сообщение: Re: [SQL] Howto to force NULL rows at the bottom ?