Хорошей практикой для улучшения производительности PostgreSQL, разместить файлы БД на другом диске, особенно эффективно если БД размещена на другом физическом диске, так как при доступе к диску изрядное время занимает не только чтение данных, но и перемещение магнитной головки.

И так решение для Vista/Windows7/Windows8/Windows Server 2012:

  1. Остановите сервис PostgreSQL - Панель Управления -> Администрирование -> Службы. Находите postgresql-x.x. Клик правой кнопкой - Stop;
  2. Теперь можете скопировать папку данных C:\Program Files\PostgreSQL\x.x\data\ в новую папку, для примера в - D:\pg\;
  3. Для новой папки назначаем полные права доступа для NETWORK SERVICE роли;
  4. Отредактируйте реестр. (Win+R) и в текстовом поле наберите команду regedit. Запустится редактор реестра. Переходим в ветку: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/postgresql-x.x. Клик правой кнопкой мыши по ключу ImagePath - изменить. Изменяете путь к папке, которая во вторых кавычках C:/Program Files/PostgreSQL/9.2/bin/pg_ctl.exe runservice -N "postgresql-9.2" -D "C:/Program Files/PostgreSQL/9.2/data" -w на C:/Program Files/PostgreSQL/9.2/ bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/pg/data" -w;
  5. Почти все готово, теперь можете удалить папку C:\Program Files\PostgreSQL\x.x\data\ и запустить сервис postgresql-x.x.

Готово.