質問

PHPからPostgreSQLデータベースをバキュームします。

これを試しました:

pg_query($conn,"vacuum analyse;");

これが機能するかどうかを確認するにはどうすればよいですか

役に立ちましたか?

解決 2

バキュームクエリを実行する前後にこのクエリを実行します。バキューム後の「年齢」が以前よりも少ない場合、バキュームは正常に実行されています。

SELECT age(datfrozenxid) as age FROM pg_database where datname='your_db';

他のヒント

最初の質問:なぜVACUUM FULL をしたのですか?意味がありません。実際には呼び出さないでください。

2番目:PHP(おそらくWebページ)からvacuumを実行すると問題が発生する可能性があります。バキューム処理には3分以上かかります。これは(正しく思い出せば)Webリクエストの標準タイムアウトです。

最善の解決策は、自動バキュームを使用することです。 autovacuumを使用できない場合-cronを使用してvacuumdb呼び出しをスケジュールします。

バキュームが数秒以上実行されると仮定すると、" SELECT * FROM pg_stat_activity "を実行できます。 postgresクライアントで、現在実行中のクエリのリストを取得します。 VACUUMクエリが表示されます。

エラーを返さないと思いますが、おそらく動作しています。ここに真空のドキュメントがあります。

http://www.postgresql.org/docs/current /interactive/sql-vacuum.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top