> Is there an index on message_recipients(Message_Key)? Yes. > How many rows satisfy > > SELECT * FROM messages WHERE Message_Date BETWEEN ... AND ... ? db=> select count(*) from messages where message_date between '29-Mar-04' and '31-Mar-04 23:59:59'; count -------- 737873 (1 row) Other cases where the number of records are smaller result in the same plan. Even a simple query like select count(*) from messages where (message_key=1234) AND message_date (between '29-Mar-04' and '31-Mar-04 23:59:59') Will use only the message_key index if define. I've tried every query I can think of and it won't use the compound index as long as the message_key index is defined - which I need for the foreign constraints. > And what are your settings for random_page_cost, effective_cache_size, > and sort_mem? Default - I have not changed those. I did bump up some postgresql.conf memory settings, but haven't touched any of the cost parameters. Wes ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings