import
se provádí při každém volání funkce. Toto je stejné chování, jaké byste získali, kdybyste napsali normální modul Pythonu s import
příkaz uvnitř těla funkce na rozdíl od na úrovni modulu.
Ano, bude to mít vliv na výkon.
Můžete to obejít uložením importů do mezipaměti takto:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
To sice není moc hezké a diskutuje se o lepších způsobech, jak toho dosáhnout, ale před PostgreSQL 9.4 k nim nedojde.