L'import
viene eseguito ad ogni chiamata di funzione. Questo è lo stesso comportamento che avresti se scrivessi un normale modulo Python con import
istruzione all'interno di un corpo di funzione come opposto a livello di modulo.
Sì, ciò influirà sulle prestazioni.
Puoi aggirare il problema memorizzando nella cache le tue importazioni in questo modo:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Questo non è certamente molto carino e si stanno discutendo modi migliori per farlo, ma non accadranno prima di PostgreSQL 9.4.