問題タブ [vacuum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
559 参照

android - Android sqlite auto_vacuum はフリーリスト ページ全体を切り捨てませんか?

SAMSUNG Glaxy と Huawei C8812 からそれぞれ 2 つの mmssms.db ファイルを取得しました。「PRAGMA auto_vacuum;」の実行 これらのファイルでは、結果は両方とも「1」になります。しかし、16 進エディタを使用してこれらのファイルを開くと、これらのファイルの ptrmap ページにフリーリスト ページ レコードがあることがわかりました。次に、いくつかのSMS削除操作の後、これらのファイルをデバイスから再度プルしました。まだ ptrmap ページで freelist ページ レコードを見つけることができました。自動バキューム モードが 1 または「フル」の場合、フリーリスト ページはデータベース ファイルの末尾に移動され、トランザクション コミットごとにフリーリスト ページを削除するためにデータベース ファイルが切り捨てられます。これらのフリーリスト ページ レコードとフリーリスト ページはどのように残っていますか?

0 投票する
1 に答える
746 参照

iphone - 並列スレッドでの SQLite VACUUM

アプリケーション データベースの作業を最適化してみてください。

データベースの同期中に、アプリケーションは 1 つのトランザクション内で「削除」コマンドと「挿入」コマンドの大きなパッケージを実行します。トランザクション「COMMIT」アプリケーションの後、「VACUUM」コマンドを実行します。VACUUM は正常に動作しますが、時間がかかる場合があります。そこで、「VACUUM」の実行を並列スレッドに移動することにしました。そして、ここで何かがうまくいかない。他のスレッドでは、「データベースがロックされています」と表示されます。

私がやること:

1.「COMMIT」が成功した後、データベースを閉じます。

2.「VACUUM」でデータベースを再度開いて閉じる別のメソッドを開始します。

「COMMIT」の同じスレッドでは「VACUUM」は正常に動作しますが、別のスレッドでは同じメソッドが「データベースがロックされています」というエラーを取得します。データベースの同期は論理的に別のアプリケーション プロセスであるため、クローズド データベースで動作するプロセスは他にないと断言できます。

私は何を間違っていますか?

0 投票する
2 に答える
10787 参照

database - Postgresql: ラップアラウンド データ損失を避けるために、データベースがコマンドを受け付けていません

クエリの作成/削除/更新時にエラーが発生しました:

エラー: データベースは、データベース "mydb" でラップアラウンド データ損失を回避するコマンドを受け付けていません。 ヒント: ポストマスターを停止し、スタンドアロン バックエンドを使用してそのデータベースをバキュームします。古い準備済みトランザクションをコミットまたはロールバックする必要がある場合もあります。

そのため、データベースはブロックされ、SELECT クエリしか実行できません。

データベースのサイズ 350 GB。1 つのテーブル ( my_table ) には最大 10 億行あります。

システム: 「x86_64-unknown-linux-gnu 上の PostgreSQL 9.3.4、gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)、64 ビットでコンパイル」

postgresq.conf いくつかの設定:

準備済みトランザクションは使用しません。しかし、基本的なストアド プロシージャ (つまり、自動トランザクションですよね?) は 1 日に 5000 万回も使用されます。

現在、「autovacuum: VACUUM ANALYZE public. my_table (ラップアラウンドを防ぐため)」が実行されており、そのクエリ アクティビティはほぼ 12 時間です。

私が理解している限り、バキュームされていない死んだタプルの問題ですよね?

この問題を解決し、将来これを防ぐにはどうすればよいですか? 助けてください :)

話の終わり (~1 か月後) 今、私の大きなテーブルは数千のテーブルで分割されています。各小さなテーブルは、はるかに高速にバキュームされます。自動バキューム構成がデフォルトにより近く設定されました。必要に応じて、さらに積極的に設定することもできますが、これまでのところ、数十億行のデータベースがうまく機能しています。

したがって、トピックの問題は再び表示されないはずです。

ps 現在、データのスケーラビリティの次のステップとして Postgres-XL を検討しています。

0 投票する
2 に答える
2675 参照

postgresql - PostgreSQL - 現在バキュームされているテーブルを特定するためのクエリ?

バキュームが実行されたときに表示するクエリを見つけましたが、現在実行されているクエリは見つかりませんでした。( http://heatware.net/databases/postgres-tables-auto-vacuum-analyze/ )

これを達成するためのクエリはありますか? pg_stat_activity をヒットできることはわかっていますが、一部のバキュームにはテーブル名がなく、pg_toast.pg_toast_3621837 が含まれているため、これは 100% の時間は機能しません。

0 投票する
4 に答える
12216 参照

amazon-web-services - VACUUM クエリによる 100% のディスク使用率の Amazon Redshift

Amazon Redshift のドキュメントを読んで、クエリのパフォーマンスを向上させるために、これまでバキュームされたことのない特定の 400GB テーブルで VACUUM を実行しました。残念ながら、VACUUM によってテーブルが 1.7 TB (!!) に増大し、Redshift のディスク使用率が 100% になりました。次に、スーパー ユーザー キューで CANCEL クエリを実行して VACUUM を停止しようとしましたが (「set query_group='superuser';」を実行して入力します)、クエリでエラーは発生しませんでしたが、実行し続けるvaccumクエリ。

私に何ができる?

0 投票する
2 に答える
25226 参照

mysql - PostgreSQL と比較して、Mysql ではバキュームが必要ないのはなぜですか?

私は MySQL よりも PostgreSQL に精通しています。PostgreSQL db でラップアラウンド Id 障害に一度遭遇し、db でのバキュームの重要性を理解しました。実際、これは対処するのに非常に大きなオーバーヘッド作業でした (そして、自動バキュームを持つように数か月前に更新された古いバージョン 7.4.3 での作業でした)。MySQL と PostgreSQL を比較する場合、MySQL は PostgreSQL のバキュームのようなオーバーヘッドに対処する必要がないと仮定してください。この仮定は正しいですか?

また、PostgreSQL と比較して、MySQL Dbs ではバキュームが必要ないのはなぜですか? MySQL データベースに存在するバキュームに似た他の最適化の代替手段はありますか?

0 投票する
1 に答える
16227 参照

sql - postgresql のバキューム テーブル

を使用して、現時点では、次のクエリを使用しているテーブルを見つけています。dead_tuples

これはテーブル名を返し、次に実行します:


それは良い方法ですか、それとも変更する必要がありますか?もしそうなら、いくつかの方法を提案してください

ありがとう