import
được thực thi trên mọi lệnh gọi hàm. Đây là hành vi tương tự mà bạn sẽ gặp phải nếu bạn viết một mô-đun Python bình thường với import
câu lệnh bên trong thân hàm như được đối lập ở cấp mô-đun.
Có, điều này sẽ ảnh hưởng đến hiệu suất.
Bạn có thể giải quyết vấn đề này bằng cách lưu vào bộ nhớ đệm các dữ liệu nhập của mình như sau:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
Điều này được thừa nhận là không đẹp lắm và những cách tốt hơn để làm điều này đang được thảo luận, nhưng chúng sẽ không xảy ra trước PostgreSQL 9.4.