Il import
viene eseguito su ogni chiamata di funzione. Questo è lo stesso comportamento che si otterrebbe se si scrivesse un normale modulo Python con l'istruzione import
all'interno di un corpo di una funzione come optabile a livello di modulo.
Sì, questo influirà sulle prestazioni.
È possibile aggirare il problema caching vostre 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 carina, e modi migliori per fare questo sono in fase di discussione, ma non avverrà prima di PostgreSQL 9.4.
fonte
2013-02-22 13:32:05
Ah, solo dopo la tua risposta ho cercato nella documentazione che esiste un dizionario globale SD. Grazie mille. – Mauli
@Peter Eisentraut sai se ci sono stati miglioramenti a questo problema nelle recenti versioni di pg? –
Non ci sono state modifiche a questo. –