No SQL Server podemos ter muitos threads de trabalho por núcleo de CPU. Alguém sabe se o mesmo é verdade no PostgreSQL e pode me indicar uma referência? (assuma a versão 11).
O pano de fundo é que temos algumas cargas de trabalho OLTP atualmente no SQL Server que estão sendo migradas para o PostgreSQL. Gostaria de saber se existe o risco de ficar sem threads se o paralelismo estiver habilitado e as conexões serem recusadas (o que pode acontecer no SQL Server quando ficarmos sem threads) e se devo recomendar que o paralelismo seja desabilitado por padrão.
O PostgreSQL não usa threads, ele usa processos coordenados de thread único. Ele não usará mais do que max_parallel_workers, em todo o sistema, ao mesmo tempo. Se exceder isso, as consultas não apresentarão erros, elas simplesmente serão executadas com menos processos de trabalho do que "queriam".
Se o número de conexões que você está tentando executar consultas ao mesmo tempo é sempre maior que o número de CPUs, provavelmente você pode desativar o paralelismo. OLTP geralmente não são grandes candidatos para execução paralela de qualquer maneira.