Size: a a a

pgsql – PostgreSQL

2020 June 03

s

sexst in pgsql – PostgreSQL
Короче говоря, оно прямо ОЧЕНЬ зависит, но в целом лучше функции выдавать в качестве интерфейса взаимодействия с базой. ПРоблем меньше будет.
источник

Ð

Ð in pgsql – PostgreSQL
очень непонятно много тратится на оптимизацию и эмиссию
источник

Ð

Ð in pgsql – PostgreSQL
(cost=10000000000.00..10000000001.06 rows=3 width=541) (actual time=41.574..41.579 rows=6 loops=1)
источник

Ð

Ð in pgsql – PostgreSQL
с индексом же вот так
(cost=0.13..2.18 rows=3 width=541) (actual time=0.037..0.040 rows=6 loops=1)
источник

Ð

Ð in pgsql – PostgreSQL
при этом индекс сам по себе не нужен
источник

Ð

Ð in pgsql – PostgreSQL
сортировки и фильтрации нет как таковой, возвращаются все строки
источник

АФ

Александр Филиппенко... in pgsql – PostgreSQL
Yaroslav Schekin
> Я тестил разные варианты, почти всегда выигрывает обычный запрос.

Хмм... вопрос в том, насколько. У Вас вообще получилось заметить отличие производительности inlined SQL function от запроса?

> plpgsql обычно чуть быстрее sql функции по факту

Странно. Как и что Вы тестировали?

> но cost почему-то больше у plpgsql.

Потому что PostgreSQL не знает и не может знать, сколько стоит функция на произвольном PL, конечно. ;)
Этот cost задаёте Вы (если хотите).
> Хмм... вопрос в том, насколько. У Вас вообще получилось заметить отличие производительности inlined SQL function от запроса?

хм. Дробить на inlined я кстати не пробовал (не умел тогда). Надо бы. Если скорость не вырастет, то хоть читаемость улучшится.

> Странно. Как и что Вы тестировали?

Речь о функциях не трогающих таблицы, там промежуточные вычисления внутри.
источник

АФ

Александр Филиппенко... in pgsql – PostgreSQL
Ð
Timing: Generation 0.673 ms, Inlining 2.600 ms, Optimization 24.830 ms, Emission 13.885 ms, Total 41.988 ms
JIT что ли?
источник

Ð

Ð in pgsql – PostgreSQL
наверное, я не знаю внутренней кухни
источник

Ð

Ð in pgsql – PostgreSQL
это происходит каждый запрос, даже если их сто тыщ
источник

Ð

Ð in pgsql – PostgreSQL
и это пошло с пг 12 вроде раньше я такого не замечал
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Ð
(cost=10000000000.00..10000000001.06 rows=3 width=541) (actual time=41.574..41.579 rows=6 loops=1)
Вот этот cost недвусмысленно намекает на то, что кто-то забыл какой-то из "*_enable = off" в сессии, и отсюда всё и покатилось под откос.
источник

Ð

Ð in pgsql – PostgreSQL
спасибо, я проверю
источник

АФ

Александр Филиппенко... in pgsql – PostgreSQL
Ð
причем на 10 пг оно работало раньше вроде бы без индекса и никто не жаловался
JIT появился в версии 11.
У меня он вообще по 2 секунды добавлял к некоторым запросам, пришлось отключить.
источник

Ð

Ð in pgsql – PostgreSQL
возможно с 11, у меня переход был с 10 на 12
источник

АФ

Александр Филиппенко... in pgsql – PostgreSQL
Ð
возможно с 11, у меня переход был с 10 на 12
у меня тоже)
источник

Ð

Ð in pgsql – PostgreSQL
почитаю про жыт
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Александр Филиппенко
> Хмм... вопрос в том, насколько. У Вас вообще получилось заметить отличие производительности inlined SQL function от запроса?

хм. Дробить на inlined я кстати не пробовал (не умел тогда). Надо бы. Если скорость не вырастет, то хоть читаемость улучшится.

> Странно. Как и что Вы тестировали?

Речь о функциях не трогающих таблицы, там промежуточные вычисления внутри.
> Дробить на inlined я кстати не пробовал (не умел тогда).

Ну так а что Вы вообще измеряли, в таком случае? ;) Я, например, именно про них писал и их советовал, если что.
Те SQL functions, которые не inline-атся, могут быть даже хуже, чем plpgsql (или на других PL) — я там писал выше.

> Речь о функциях не трогающих таблицы, там промежуточные вычисления внутри.

Опять-таки, если она не inlinable — о чём тут говорить?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Александр Филиппенко
JIT появился в версии 11.
У меня он вообще по 2 секунды добавлял к некоторым запросам, пришлось отключить.
Повысили бы cost, при котором он активируется, зачем сразу голову-то рубить? ;)
источник

АК

А. К. in pgsql – PostgreSQL
Всем привет, нужна помощь, как можно в pg параллелить select
источник