Size: a a a

pgsql – PostgreSQL

2020 July 30

КБ

Константин Бакарас... in pgsql – PostgreSQL
Valery
Не по кэшу а по сохраненному плану. Разницу чувствуете?
Да, но я так понимаю, что план в моём случае прост - вызов функции. Но это ведь тоже план, что мешает в нём заинлайнить результат вызова с теми же параметрами?

Я понимаю, что "может" не значит "будет". Но вопрос как раз про "будет". Когда, при каких условиях это произойдёт, как их воспроизвести.
источник

V

Valery in pgsql – PostgreSQL
Sergey Bezrukov
"with all-constant arguments" вряд ли можно трактовать как "with same arguments"
ну и в любом случае "может" не значит "будет"
Если вы о "может" из цитаты, то это предупреждение о потенциальной ошибке
источник

АЛ

Аггей Лоскутников... in pgsql – PostgreSQL
Valery
Не по кэшу а по сохраненному плану. Разницу чувствуете?
Если повезёт и для prepared statement будет выбран постоянный план?
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
Valery
Если вы о "может" из цитаты, то это предупреждение о потенциальной ошибке
я в основном про то, что "all-constants" может совсем быть не равно по смыслу "same"
источник

V

Valery in pgsql – PostgreSQL
Аггей Лоскутников
Если повезёт и для prepared statement будет выбран постоянный план?
Ну что же вы так... Не даёте человеку самому дойти до ответа😀
источник

V

Valery in pgsql – PostgreSQL
Константин Бакарас
Да, но я так понимаю, что план в моём случае прост - вызов функции. Но это ведь тоже план, что мешает в нём заинлайнить результат вызова с теми же параметрами?

Я понимаю, что "может" не значит "будет". Но вопрос как раз про "будет". Когда, при каких условиях это произойдёт, как их воспроизвести.
Посмотрите в каких случаях постгрес может сохранить план
источник

КБ

Константин Бакарас... in pgsql – PostgreSQL
immutable появляется в 7.3. До этого он назывался isCachable. Про isCachable в 7.2 сказано:

Iscachable indicates that the function always returns the same result when given the same argument values (i.e., it does not do database lookups or otherwise use information not directly present in its parameter list). The optimizer uses iscachable to know whether it is safe to pre-evaluate a call of the function.
источник

V

Valery in pgsql – PostgreSQL
Константин Бакарас
immutable появляется в 7.3. До этого он назывался isCachable. Про isCachable в 7.2 сказано:

Iscachable indicates that the function always returns the same result when given the same argument values (i.e., it does not do database lookups or otherwise use information not directly present in its parameter list). The optimizer uses iscachable to know whether it is safe to pre-evaluate a call of the function.
И что в этом описании непонятно?
источник

КБ

Константин Бакарас... in pgsql – PostgreSQL
В этом описании всё понятно, но в нём не сказано, когда оптимизатор воспользуется возможностью заменить вызов на вычисленное заранее значение функции.
источник

V

Valery in pgsql – PostgreSQL
Эта информация есть в документации
источник

V

Valery in pgsql – PostgreSQL
Но не в том разделе, который вы читаете
источник

V

Valery in pgsql – PostgreSQL
Посмотрите prepared statements
источник

КБ

Константин Бакарас... in pgsql – PostgreSQL
Valery
Посмотрите prepared statements
Спасибо!
источник

R

Roman in pgsql – PostgreSQL
Как сохранить в базу зип архив?
источник

КБ

Константин Бакарас... in pgsql – PostgreSQL
Да, так удалось воспроизвести использование предвычисленного значения функции. Но, действительно, это происходит только при использовании prepared-запросов и в плане действительно должны быть константные значения. Например, так сработает:

PREPARE cc1  AS
   select check_cache('11e235aa-0a5a-475f-9173-2929ca5e5fcf');

А вот так - нет:

PREPARE cc(uuid)  AS
   select check_cache($1);
источник

КБ

Константин Бакарас... in pgsql – PostgreSQL
Благодарю всех! С вашей помощью удалось лучше понять работу этой механики.
источник

КБ

Константин Бакарас... in pgsql – PostgreSQL
Roman
Как сохранить в базу зип архив?
Вопросу очень не хватает деталей. А вообще, поле с типом bytea, вероятно, подойдёт.
источник

M

M in pgsql – PostgreSQL
Добрый день
кто знает, хранится ли с пг история analyze таблицы?
источник

GS

Grigory Smolkin in pgsql – PostgreSQL
M
Добрый день
кто знает, хранится ли с пг история analyze таблицы?
в pg_stat_all_tables
источник

R

Roman in pgsql – PostgreSQL
Константин Бакарас
Вопросу очень не хватает деталей. А вообще, поле с типом bytea, вероятно, подойдёт.
У меня есть папка. Я хочу с нее сделать zip и сохранить в базу
источник