Andre Felipe Machado wrote:
It seems that Firebird windows can use adequately as much ram it finds
and postgresql windows can not.
PostgreSQL relies on the OS cache to utilize RAM. Make sure that most of
the RAM is 'available' so Windows can do its thing.
effective_cache_size should be set correspondingly high - at least 65535.
shared_buffers should be as low as you can get away with (allowing for
multiple users). 16384 is 12.5% of your RAM and far too high.
AFAIK, PostgreSQL still doesn't differentiate between index blocks and
data blocks.
work_mem reduced time almost 66%.
But work_mem easily can exhaust ram with many users connected, as each
connection query will use this amount of memory (if I can remember).
How much it can grow at this 1 gbram win machine?
work_mem has to be just big enough to allow hash joins to operate
efficiently. This varies from query to query and can be set in your code
accordingly. However, the 1024 default is just too low for most
applications and you'll probably find even 4096 is a huge improvement.
You need to find the minimum that delivers acceptable performance in
most queries and boost it for selected queries as required.
BTW, which version of Firebird is this?