import
udføres ved hvert funktionskald. Dette er den samme adfærd, som du ville få, hvis du skrev et normalt Python-modul med import
sætning inde i en funktionstekst i modsætning til på modulniveau.
Ja, dette vil påvirke ydeevnen.
Du kan omgå dette ved at cache dine importer på denne måde:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Dette er ganske vist ikke særlig kønt, og bedre måder at gøre dette på diskuteres, men de vil ikke ske før PostgreSQL 9.4.