RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4
От | ldh@laurent-hasson.com |
---|---|
Тема | RE: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4 |
Дата | |
Msg-id | DM6PR15MB25540AA95D274D3326A1D60485C99@DM6PR15MB2554.namprd15.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4 (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-performance |
> -----Original Message----- > From: Tom Lane <tgl@sss.pgh.pa.us> > Sent: Friday, August 27, 2021 13:43 > To: ldh@laurent-hasson.com > Cc: Justin Pryzby <pryzby@telsasoft.com>; Ranier Vilela > <ranier.vf@gmail.com>; pgsql-performance@postgresql.org > Subject: Re: Big Performance drop of Exceptions in UDFs between V11.2 > and 13.4 > > "ldh@laurent-hasson.com" <ldh@laurent-hasson.com> writes: > > That being said, do you have any suggestion how I could circumvent > the > > issue altogether? > > Based on Andrew's report, it seems like you might be able to work > around it for the time being by disabling message translations, i.e. > SET lc_messages = 'C'; > Even if that's not acceptable in your work environment, it would be > useful to verify that you see an improvement from it. > > regards, tom lane SET lc_messages = 'C'; drop table sampletest; create table sampletest (a varchar, b varchar); insert into sampletest (a, b) select substr(md5(random()::text), 0, 15), (100000000*random())::integer::varchar from generate_series(1,100000); CREATE OR REPLACE FUNCTION toFloat(str varchar, val real) RETURNS real AS $$ BEGIN RETURN case when str is null then val else str::real end; EXCEPTION WHEN OTHERS THEN RETURN val; END; $$ LANGUAGE plpgsql COST 1 IMMUTABLE; show lc_messages; -- OK 'C'
В списке pgsql-performance по дате отправления: