import
се изпълнява при всяко извикване на функция. Това е същото поведение, което бихте получили, ако сте написали нормален модул на Python с import
израз вътре в тялото на функция, за разлика от ниво модул.
Да, това ще повлияе на производителността.
Можете да заобиколите това, като кеширате вашите импортирания по следния начин:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Това разбира се не е много красиво и се обсъждат по-добри начини за това, но те няма да се случат преди PostgreSQL 9.4.