"Thomas T. Thai" <[EMAIL PROTECTED]> writes: > 'select * from url' from psql monitor took 59 seconds. How big is the table? Your EXPLAIN mentions 99256 rows, but I can't tell if that stat is up-to-date or not. A select like that is going to be pretty much all data transfer: read the disk blocks, format the data values, send 'em to the frontend. There's hardly anything that Postgres can do to optimize or pessimize it. You might shave a few milliseconds by using a binary cursor (to avoid formatting the integer values into ASCII) but probably not a lot. If you've done a whole lot of UPDATEs/DELETEs on the table since your last VACUUM, then reading empty disk blocks might be costing you some time. regards, tom lane