Êîìïàíèÿ Postgres Professional âûïóñòèëà Postgres Pro Standard 18 — âåðñèþ ÑÓÁÄ íà áàçå íîâåéøåãî ÿäðà PostgreSQL 18 ñ îïòèìèçàöèåé äëÿ ïðîèçâîäèòåëüíîñòè, ìîíèòîðèíãà è êîðïîðàòèâíîé áåçîïàñíîñòè. Îá ýòîì CNews ñîîáùèëè ïðåäñòàâèòåëè Postgres Professional.
Âîçìîæíîñòè PostgreSQL 18
Ïåðåõîä íà ÿäðî PostgreSQL 18 äàåò ïîëüçîâàòåëÿì Postgres Pro Standard ïîâûøåíèå ïðîèçâîäèòåëüíîñòè è áîëåå óäîáíóþ ýêñïëóàòàöèþ.
 Postgres Pro Standard 18 äîñòóïíû âñå íîâûå ðåøåíèÿ âàíèëüíîé âåðñèè, âêëþ÷àÿ:
– Àñèíõðîííûé ââîä-âûâîä (AIO). Âíåäðåíèå AIO ïîçâîëÿåò ÑÓÁÄ âûïîëíÿòü ìíîæåñòâåííûå çàïðîñû íà ÷òåíèå äàííûõ ñ äèñêà ïàðàëëåëüíî, íå äîæèäàÿñü îòâåòà íà êàæäûé èç íèõ. Ýòî ñóùåñòâåííî óñêîðÿåò ïîñëåäîâàòåëüíîå ñêàíèðîâàíèå, îïåðàöèè VACUUM è ñáîð ñòàòèñòèêè, çàêëàäûâàåò ôóíäàìåíò äëÿ áóäóùèõ ðåêîðäîâ ïðîèçâîäèòåëüíîñòè â âûñîêîíàãðóæåííûõ àíàëèòè÷åñêèõ è òðàíçàêöèîííûõ ñèñòåìàõ.
– Îïòèìèçàöèÿ Skip Scan. Íîâàÿ ñòðàòåãèÿ ïëàíèðîâùèêà ïîçâîëÿåò áîëåå ýôôåêòèâíî èñïîëüçîâàòü ìíîãîêîëîíî÷íûå B-tree èíäåêñû äàæå â òåõ ñëó÷àÿõ, êîãäà óñëîâèå WHERE íå âêëþ÷àåò âåäóùóþ êîëîíêó èíäåêñà. Ýòî ÷àñòî ïðåâðàùàåò ïîëíîå ñêàíèðîâàíèå òàáëèöû (seq scan) â áûñòðûé èíäåêñíûé ïîèñê.
– Ðàñøèðåííûå èíñòðóìåíòû ìîíèòîðèíãà. Äîðàáîòêè EXPLAIN ANALYZE (àâòîìàòè÷åñêîå îòîáðàæåíèå BUFFERS, äåòàëèçàöèÿ âðåìåííîãî õðàíèëèùà è I/O) äåëàþò äèàãíîñòèêó è íàñòðîéêó ñëîæíûõ çàïðîñîâ áîëåå íàãëÿäíûìè è ýôôåêòèâíûìè.
– Ýôôåêòèâíûé VACUUM. Ïåðåðàáîòàí ìåõàíèçì VACUUM, âêëþ÷àÿ «íåòåðïåëèâóþ çàìîðîçêó» (eager freezing), êîòîðàÿ ñíèæàåò âåðîÿòíîñòü áëîêèðîâîê è ïîçâîëÿåò ëó÷øå êîíòðîëèðîâàòü ìàñøòàáèðîâàíèå ðàáî÷èõ ïðîöåññîâ àâòîâàêóóìà.
Óëó÷øåííàÿ àäàïòèâíàÿ îïòèìèçàöèÿ çàïðîñîâ
Ìîäóëü AQO (Adaptive Query Optimizer) 4.0 èñïîëüçóåò ìàøèííîå îáó÷åíèå äëÿ àâòîìàòè÷åñêîãî èñïðàâëåíèÿ îøèáîê â ïëàíàõ âûïîëíåíèÿ çàïðîñîâ, âîçíèêàþùèõ â ñòàíäàðòíîì ïëàíèðîâùèêå.
Êëþ÷åâîå îòëè÷èå âåðñèè 4.0 — óñòðàíåíèå íàêëàäíûõ ðàñõîäîâ íà ýòàïå ïëàíèðîâàíèÿ, êîòîðûå îãðàíè÷èâàëè ïðèìåíåíèå ìîäóëÿ â ïðåäûäóùèõ âåðñèÿõ.
Òàêæå èç óëó÷øåíèé: áëàãîäàðÿ íèâåëèðîâàíèþ çàòðàò ðåñóðñîâ íà ïëàíèðîâàíèå, ìîäóëü òåïåðü ðåêîìåíäîâàí äëÿ ëþáûõ òèïîâ ðàáî÷èõ íàãðóçîê, à íå òîëüêî äëÿ ñïåöèôè÷åñêèõ ñöåíàðèåâ; çà ñ÷åò ïîñòðîåíèÿ áîëåå ýôôåêòèâíûõ ïëàíîâ çàïðîñîâ ïîëüçîâàòåëè îòìå÷àþò ñíèæåíèå íàãðóçêè íà äèñêîâóþ ïîäñèñòåìó íà äåñÿòêè ïðîöåíòîâ; â íîâîé âåðñèè ðåàëèçîâàíà ïîääåðæêà êîíôèãóðàöèé âûñîêîé äîñòóïíîñòè, à òàêæå óñòðàíåíû ïðîáëåìû ñ ðàçðàñòàíèåì ñëóæåáíûõ äàííûõ è âðåìåííûìè òàáëèöàìè.
Ðàñøèðåííàÿ áåçîïàñíîñòü è àóäèò
Ïðè ðàçðàáîòêå Postgres Pro Standard 18 ìû óäåëÿëè âíèìàíèå èíñòðóìåíòàì, êðèòè÷åñêè âàæíûì äëÿ ãîñóäàðñòâåííûõ îðãàíèçàöèé è êðóïíûõ êîðïîðàöèé, ðåøàþùèõ çàäà÷è èìïîðòîçàìåùåíèÿ.
Óñèëåííûé àóäèò è æóðíàëèðîâàíèå. Ìîäóëü àóäèòà pg_proaudit áûë îáíîâëåí è òåïåðü ïîääåðæèâàåò ëîãèðîâàíèå áîëüøåãî ÷èñëà ñèñòåìíûõ ñîáûòèé, îáåñïå÷èâàÿ êîíòðîëü íàä àêòèâíîñòüþ â áàçå äàííûõ: äîáàâëåíà ïîääåðæêà ëîãèðîâàíèÿ íîâûõ òèïîâ ñîáûòèé: ANALYZE, DISCARD ALL, CHECKPOINT, FETCH è MOVE; ââåäåí íîâûé êëàññ ñîáûòèé MISC äëÿ ðåãèñòðàöèè ïðî÷èõ äåéñòâèé, íå îòíîñÿùèõñÿ ê îñíîâíûì êàòåãîðèÿì; â ëîã ñîáûòèé AUTHENTICATE òåïåðü äîáàâëÿåòñÿ èìÿ èíèöèèðóþùåãî ïðèëîæåíèÿ, ÷òî ïîâûøàåò ïðîçðà÷íîñòü ïîäêëþ÷åíèé.
Çàùèòà êîíôèäåíöèàëüíûõ äàííûõ. Äëÿ ïîâûøåíèÿ áåçîïàñíîñòè Postgres Pro Standard 18 ïî óìîë÷àíèþ âêëþ÷àåò ìàñêèðîâàíèå ïàðîëåé â ñåðâåðíîì æóðíàëå, ÷òî ïðåäîòâðàùàåò óòå÷êó ó÷åòíûõ äàííûõ.
Ãèáêîå óïðàâëåíèå ïàðîëÿìè.  êîìàíäû CREATE PROFILE è ALTER PROFILE äîáàâëåíû íîâûå ïàðàìåòðû: OLD_PASSWORD_TIME — îïðåäåëÿåò, êàê äîëãî ïîëüçîâàòåëü ìîæåò èñïîëüçîâàòü ñòàðûé ïàðîëü äëÿ àóòåíòèôèêàöèè îäíîâðåìåííî ñ íîâûì; OLD_PASSWORD_MAX — îãðàíè÷èâàåò ÷èñëî ïîïûòîê àóòåíòèôèêàöèè ñ èñïîëüçîâàíèåì ñòàðîãî ïàðîëÿ äî åãî áëîêèðîâêè.
Ýòà ôóíêöèîíàëüíîñòü çíà÷èòåëüíî óïðîùàåò ïðîöåññ ïëàíîâîé ñìåíû ïàðîëåé äëÿ áîëüøèõ ãðóïï ïîëüçîâàòåëåé.
Îïòèìèçàöèÿ ïðîèçâîäèòåëüíîñòè è äèàãíîñòèêè çàïðîñîâ
Ðåëèç âêëþ÷àåò âàæíûå îáíîâëåíèÿ ïðîïðèåòàðíûõ ìîäóëåé äëÿ òîíêîé íàñòðîéêè è ãëóáîêîé àíàëèòèêè.
Óëó÷øåííàÿ ñòàòèñòèêà. Ìîäóëü òåïåðü ïîçâîëÿåò ïàðàìåòðèçèðîâàòü çíà÷åíèÿ SET è ñïèñêè êîíñòàíò, ÷òî çíà÷èòåëüíî ñîêðàùàåò ðàçðàñòàíèå ñòàòèñòèêè, âûçâàííîå îäíîòèïíûìè, íî ðàçëè÷àþùèìèñÿ ïî êîíñòàíòàì îïåðàòîðàìè.
Èäåíòèôèêàöèÿ ïëàíîâ. Äîáàâëåí íîâûé ïàðàìåòð compute_plan_id, êîòîðûé ïîçâîëÿåò âêëþ÷àòü/îòêëþ÷àòü âñòðîåííîå âû÷èñëåíèå èäåíòèôèêàòîðîâ ïëàíîâ çàïðîñîâ, à òàêæå ïîëå plan_id â ïðåäñòàâëåíèå pg_stat_activity äëÿ óäîáñòâà ìîíèòîðèíãà.
Îáíîâëåíû êëþ÷åâûå ìîäóëè: pgpro_pwr 4.11, orafce 4.16.1, pg_probackup 2.8.11, pgvector 0.8.1.


