Preskoči na glavno vsebino

Paralelné spracovanie SQL dopytov (PostgreSQL 10)

Je možné v PostgreSQL 10 zapnúť paralelné spracovanie SQL dopytov?

Avtor: Petr Pech

Áno, PostgreSQL 10 podporuje paralelné spracovanie dopytov.

👉 Databáza môže jeden dopyt rozdeliť na viacero častí a spracovať ich súbežne (napr. pri čítaní veľkých objemov dát).


Obmedzenia

Paralelné spracovanie sa nepoužije, ak dopyt obsahuje funkcie, ktoré nie sú označené ako PARALLEL SAFE.

Typicky:

  • funkcia bigid nie je v predvolenom stave paralelne bezpečná


Riešenie

Funkcie je možné označiť ako paralelne bezpečné:

ALTER FUNCTION public.bigid(bigint, bigint)
PARALLEL SAFE;
ALTER FUNCTION public.bigid(character varying, character varying, character varying, character varying, character varying)
PARALLEL SAFE;


Poznámka

  • označenie PARALLEL SAFE znamená, že funkcia nemá vedľajšie efekty

  • zmenu vykonávajte iba vtedy, ak ste si istí, že je funkcia bezpečná

Ste s tem dobili odgovor na svoje vprašanje?