sql >> データベース >  >> RDS >> PostgreSQL

plpythonのインポートステートメントはどのように処理されますか?

    import すべての関数呼び出しで実行されます。これは、importを使用して通常のPythonモジュールを作成した場合と同じ動作です。 モジュールレベルではなく、関数本体内のステートメント。

    はい、これはパフォーマンスに影響します。

    次のようにインポートをキャッシュすることで、これを回避できます。

    CREATE FUNCTION test() RETURNS text
    LANGUAGE plpythonu
    AS $$
    if 'json' in SD:
        json = SD['json']
    else:
        import json
        SD['json'] = json
    
     return json.dumps(...)
    $$;
    

    確かにこれはあまりきれいではなく、これを行うためのより良い方法が議論されていますが、PostgreSQL9.4より前では起こりません。



    1. Mysql-ビューからのEXPLAINSELECTは、メインテーブルのすべての行を検索しています

    2. Oracle:最近のSQL構文エラーを取得する方法はありますか?

    3. SQLステートメントで許可されていないローカルコレクションタイプ

    4. 移行の続編-PostgreSQLでトリガーを作成する