From: DeskNow Knowledge Base

Performance tuning for the embedded PostgreSQL database (Windows)

PostgreSQL can be a very fast database, but its default settings are quite conservative. Very simple adjustments can improve its performance dramatically in high load environments.

Simple maintenance

Simple maintenance operations can improve the db performance. See /kb/idx/0/197/article/

General considerations about tuning

In almost every interactive web application, the bottleneck is the database, not the application. This is the case of DeskNow as well. As with every database, the more RAM you can give to the database, the better.

Very important are also SCSI or SATA NCQ drives, as they free CPU for other tasks while data is being loaded.

Finally, partitioning the database over several disks can improve considerably performance. Even the ability of writing transaction log files to a separate disk improves performance a lot (this last is a very advanced performance improvement, which will not be discussed here).

Simple configuration changes.

Most of the config changes are done in the postgresql.conf file (typically in C:\desknowdata\pgdata).

Important: before starting, backup the file postgresql.conf file. You need to restart DeskNow (which in turn restarts the database) for any change to take effect.

shared_buffers this is the most important parameter. Multiply this value by 8192 to understand how much memory postgres will use.

The default value is 10000 (80Mb RAM).
Ex 20000=160Mb ram , 30000=240Mb , etc.

Keep in mind that DeskNow uses 140 Mb at max (unless you increase its memory allocation, see /kb/idx/0/077/article/

So 70000 is typically a good choice for a server with 1Gb RAM, entirely dedicated to DeskNow.

If you have more memory, increase this number. Make sure to not use too much compared to your available memory, otherwise the system will start swapping to disk. You can check this using the Windows Task Manager/Performance section.

Note for Windows 2003: on some windows 2003 systems, you may have problems (database not starting) if you use a value larger than 130000. This is due to a Windows problem in memory management. To verify that this really is the cause of the problem, check the Windows Event Viewer, you would see an error message from Postgres saying 'FATAL:  shmat(id=1880) failed: Not enough space' (the id number would be different).

In this case, please see and for a solution.