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

PostgreSQL-トランザクションブロック外のコードからVACUUMを実行する方法は?

    さらに検索した後、psycopg2接続オブジェクトのisolation_levelプロパティを発見しました。これを0に変更するとわかります トランザクションブロックから移動します。上記のクラスのバキュームメソッドを次のように変更すると、問題が解決します。また、念のために分離レベルを以前のレベルに戻したことにも注意してください(1のようです)。 デフォルト)。

    def vacuum(self):
        old_isolation_level = self.conn.isolation_level
        self.conn.set_isolation_level(0)
        query = "VACUUM FULL"
        self._doQuery(query)
        self.conn.set_isolation_level(old_isolation_level)
    

    この記事 (そのページの終わり近く)は、このコンテキストでの分離レベルの簡単な説明を提供します。



    1. データガバナンスに人間的なアプローチをとる

    2. Oracleのタイムゾーンの日付形式

    3. 簡単なSQLの質問!属性のほとんどの出現でソート

    4. MySQLで改行とキャリッジリターン(\ r \ n)を見つける