De import
wordt uitgevoerd bij elke functieaanroep. Dit is hetzelfde gedrag dat u zou krijgen als u een normale Python-module zou schrijven met de import
statement binnen een functielichaam in tegenstelling tot op moduleniveau.
Ja, dit heeft invloed op de prestaties.
U kunt dit omzeilen door uw importen als volgt te cachen:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Dit is weliswaar niet erg mooi, en er worden betere manieren besproken om dit te doen, maar dat zal niet eerder gebeuren dan PostgreSQL 9.4.