Joel Fradkin wrote:
> Basically the question was why would a view use an indexed search on one
> result set but a seq search on a larger result set. Same view only
> difference is how many rows are returned. The large result set was doing a
> seq search and did not return after several minutes. The same sql ran in 135
> seconds on my MSSQL system.
Accessing an index 1000 times then reading 1000 rows may be slower than
just reading a whole table of 2000 rows.
You can examine what PostgreSQL thinks the query will cost by running an
explain: EXPLAIN ANALYSE SELECT ...
This will display two sets of figures for each stage, the expected costs
and the actual.
Finally, make sure your configuration settings are reasonable. Read
through the guide at: http://www.varlena.com/varlena/GeneralBits/Tidbits/index.php
There's a -performance list that specialises in dealing with these
issues. If you post there, mention you've tuned as per GeneralBits and
provide an example of the query, view definition and the output from
explain.
-- Richard Huxton Archonet Ltd