Dror,

> select articlenumber, channel, description, title, link, dtstamp  from
>       items, my_channels where items.channel = '22222' and my_channels.id =
>       '22222' and owner = 'drormata'  and dtstamp > last_viewed and
>       articlenumber not in (select item from viewed_items where channel
>       ='22222' and owner = 'drormata');

the NOT IN is a bad idea unless the subselect never returns more than a 
handful of rows.  If viewed_items can grow to dozens  of rows, wyou should 
use WHERE NOT EXISTS instead.  Unless you're using 7.4.

> item_max_date() looks like this:
>    select max(dtstamp) from items where channel = $1 and link = $2;

Change it to 

SELECT dtstamp from iterm where channel = $1 and link = $2
ORDER BY dtstamp DESC LIMIT 1

and possibly build an index on channel, link, dtstamp

-- 
-Josh Berkus
 Aglio Database Solutions
 San Francisco


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to