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

cursor.copy_from()を使用したpsycopg2 COPYは、大きな入力でフリーズします

    これは単なる回避策ですが、psqlに何かをパイプすることができます。怠惰すぎてpsycopg2をバストアウトできないときに、このレシピを使用することがあります

    import subprocess
    def psql_copy_from(filename, tablename, columns = None):
        """Warning, this does not properly quote things"""
        coltxt = ' (%s)' % ', '.join(columns) if columns else ''
        with open(filename) as f:
            subprocess.check_call([
                'psql',
                '-c', 'COPY %s%s FROM STDIN' % (tablename, coltxt),
                '--set=ON_ERROR_STOP=true', # to be safe
                # add your connection args here
            ], stdin=f)
    

    ロックアップに関する限り、複数のスレッドなどを使用していますか?

    postgresは、閉じた接続やデッドロックなどのログを記録していますか?ロックアップした後のディスクアクティビティを確認できますか?



    1. NodeJSとPostgresを使用したトランザクションチェーンのオプションのINSERTステートメント

    2. SQLでネストされた関係を簡単かつ効率的に照会するにはどうすればよいですか?

    3. Oracleでoutパラメータとしてテーブルを取得する方法

    4. Excel形式のASPの日付形式