Saya telah mengimpor data ke basis data baru (sekitar 600 m baris cap waktu, bilangan bulat, ganda). Saya kemudian membuat beberapa indeks dan mencoba untuk mengubah beberapa kolom (mendapatkan beberapa masalah ruang), database disedot.
Sekarang pgAdmin III memberi tahu saya bahwa " Ukuran file sementara " adalah 50G ~ +.
- Apa file sementara ini? apakah ini seperti log transaksi SQL Server?
- Bagaimana saya bisa menyingkirkan mereka, sepertinya database jauh lebih besar dari yang seharusnya (ukuran total database adalah 91 GB)
Menggunakan Posgres 9.4.1 di server Windows 2012.
Tangkapan layar tab statistik statistik:
postgresql
pgadmin
Ofiris
sumber
sumber
Jawaban:
Saya tidak menemukan apa pun dalam dokumentasi pgAdmin, tetapi kode sumber mengungkapkan kueri di balik entri ini (ditambahkan untuk Postgres 9.2+):
Intinya adalah:
Dan manual Postgres memiliki detail untuk
pg_stat_database
:Perhatikan bahwa nilai-nilai ini tidak berkontribusi pada ukuran database Anda. Tetapi mereka menunjukkan bahwa pengaturan Anda untuk
work_mem
mungkin terlalu rendah, sehingga banyak operasi semacam tumpah ke disk (yang sangat lambat dibandingkan dengan hanya RAM).Terkait:
Untuk benar-benar memadatkan ukuran basis data Anda:
Untuk mengukur ukuran:
Selain itu: WAL (Write Ahead Log) akan sama dengan Postgres untuk log transaksi di SQL Server. Penjelasan yang bagus dalam jawaban terkait ini di SO:
sumber
Berdasarkan:
http://www.postgresql.org/message-id/[email protected]
Penghitung temp (file dan ruang yang digunakan) menunjukkan total semua file temp yang digunakan karena mungkin pembuatan klaster. Itu tidak mencerminkan ruang saat ini digunakan oleh file temp.
Sistem saya misalnya menunjukkan hampir 700GB file temp yang digunakan, tetapi ruang sebenarnya diambil oleh file temp di /var/lib/pgsql/9.3/data/base/pgsql_tmp hanya 53MB saat ini.
sumber