PostgreSQL “geçici dosyaların boyutu”


13

Verileri yeni bir veritabanına aktardım (yaklaşık 600m satır zaman damgası, tamsayı, çift). Daha sonra bazı dizinler oluşturdum ve bazı sütunları değiştirmeye çalıştım (bazı alan dışı sorunları aldım), veritabanı vakumlandı.

Şimdi pgAdmin III, " Geçici dosyaların boyutu " nun 50G ~ + olduğunu söylüyor .

  1. Bu geçici dosyalar nedir? SQL Server işlem günlüğü gibi?
  2. Onlardan nasıl kurtulabilirim, veritabanı olması gerekenden çok daha büyük görünüyor (veritabanının toplam boyutu 91 GB)

Kullanılması Posgres 9.4.1 Bir üzerinde , Windows 2012 sunucusuna.

Veritabanı istatistikleri sekmesinin ekran görüntüsü:

Veritabanı istatistikleri sekmesinin ekran görüntüsü


"Geçici dosyaların boyutu" sütun değeri neyi temsil eder?
Ofiris

Yanıtlar:


12

PgAdmin belgelerinde hiçbir şey bulamadım, ancak kaynak kodu bu girişlerin arkasındaki sorguyu ortaya koyuyor (Postgres 9.2+ için eklendi):

Aşağı kaynar:

SELECT temp_files AS "Temporary files"
     , temp_bytes AS "Size of temporary files"
FROM   pg_stat_database db;

Ve Postgres kılavuzunun ayrıntılarıpg_stat_database :

tmp_files bigint Bu veritabanındaki sorgular tarafından oluşturulan geçici dosya sayısı. Geçici dosyanın neden oluşturulduğuna (ör. Sıralama veya karma) ve log_temp_files ayarına bakılmaksızın tüm geçici dosyalar sayılır .

temp_bytes bigint Bu veritabanındaki sorgular tarafından geçici dosyalara yazılan toplam veri miktarı. Geçici dosyanın neden oluşturulduğundan bağımsız olarak ve log_temp_files ayarından bağımsız olarak tüm geçici dosyalar sayılır .

Bu değerler unutmayın değil veritabanınızın boyutuna katkıda bulunur. Ancak, ayarınızın work_memçok düşük olabileceğini gösterir , böylece birçok sıralama işlemi diske dökülür (bu sadece RAM ile karşılaştırıldığında çok yavaştır).

İlişkili:

Veritabanınızın boyutunu gerçekten sıkıştırmak için:

Boyutu ölçmek için:

Bir yana: WAL (İleriye Günlüğe Yaz) SQL Server'daki işlem günlüğü için Postgres'te eşdeğerdir. SO ile ilgili bu cevapta güzel açıklama:


10

Göre:

http://www.postgresql.org/message-id/BLU0-SMTP179B92C5102247CD961A4B3CF2A0@phx.gbl

Geçici sayaç (kullanılan dosyalar ve alan), muhtemelen küme oluşturulduğundan beri kullanılan tüm geçici dosyaların toplamını gösterir. Geçici dosyalar tarafından kullanılan geçerli alanı yansıtmaz.

Örneğin sistemim kullanılan yaklaşık 700 GB geçici dosyayı gösteriyor, ancak /var/lib/pgsql/9.3/data/base/pgsql_tmp içindeki geçici dosyaların kapladığı gerçek alan şu anda yalnızca 53 MB.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.