SELECT * FROM foo + 20 джоинов, где в каждой таблице по 30 полей
, то никакой буфер не поможет и база будет аццки тормозить, потому что диск напрягается туда сюда читать-записывать. Пока не будет ответа какие запросы тормозят и какова структура таблиц - помочь не возможно. work_mem = 15728kB
какое-то странное значение. От куда оно? Оно не кратно ни 32 ни 64.