PostgreQuery Kích thước của các tập tin tạm thời


12

Tôi đã nhập dữ liệu vào cơ sở dữ liệu mới (khoảng 600m hàng dấu thời gian, số nguyên, gấp đôi). Sau đó tôi đã tạo ra một số chỉ mục và cố gắng thay đổi một số cột (có một số vấn đề ngoài không gian), cơ sở dữ liệu được hút bụi.

Bây giờ pgAdmin III nói với tôi rằng " Kích thước của tệp tạm thời " là 50G ~ +.

  1. Những tập tin tạm thời này là gì? đây có phải là nhật ký giao dịch SQL Server không?
  2. Làm thế nào tôi có thể thoát khỏi chúng, có vẻ như cơ sở dữ liệu lớn hơn nhiều so với bình thường (tổng kích thước của cơ sở dữ liệu là 91 GB)

Sử dụng Posgres 9.4.1 trên máy chủ Windows 2012.

Ảnh chụp màn hình của tab thống kê cơ sở dữ liệu:

Ảnh chụp màn hình của tab thống kê cơ sở dữ liệu


Giá trị cột "kích thước của tệp tạm thời" thể hiện điều gì?
Ofiris

Câu trả lời:


12

Tôi không tìm thấy gì trong tài liệu pgAdmin, nhưng mã nguồn tiết lộ truy vấn đằng sau các mục này (được thêm cho Postgres 9.2+):

Nó đun sôi xuống:

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

hướng dẫn Postgres có chi tiết chopg_stat_database :

tmp_files bigint Số lượng tệp tạm thời được tạo bởi các truy vấn trong cơ sở dữ liệu này. Tất cả các tệp tạm thời được tính, bất kể tại sao tệp tạm thời được tạo (ví dụ: sắp xếp hoặc băm) và bất kể cài đặt log_temp_files .

temp_bytes bigint Tổng số lượng dữ liệu được ghi vào các tệp tạm thời bằng các truy vấn trong cơ sở dữ liệu này. Tất cả các tệp tạm thời được tính, bất kể tại sao tệp tạm thời được tạo và bất kể cài đặt log_temp_files .

Lưu ý rằng những giá trị này làm không đóng góp vào kích thước cơ sở dữ liệu của bạn. Nhưng chúng chỉ ra rằng cài đặt của bạnwork_memcó thể quá thấp, do đó nhiều thao tác sắp xếp tràn vào đĩa ( rất chậm so với chỉ RAM).

Liên quan:

Để thực sự thu gọn kích thước của cơ sở dữ liệu của bạn:

Để đo kích thước:

Ngoài ra: WAL (Viết nhật ký trước) sẽ tương đương trong Postgres cho nhật ký giao dịch trong SQL Server. Giải thích hay trong câu trả lời liên quan này trên SO:


10

Dựa theo:

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

Bộ đếm tạm thời (tệp và không gian được sử dụng) hiển thị tổng cộng tất cả các tệp tạm thời được sử dụng do có thể tạo cụm. Nó không phản ánh không gian hiện tại được sử dụng bởi các tập tin tạm thời.

Ví dụ, hệ thống của tôi hiển thị gần 700GB tệp tạm thời được sử dụng, nhưng không gian thực tế được chiếm bởi các tệp tạm thời trong /var/lib/pgsql/9.3/data/base/pgsql_tmp hiện chỉ có 53 MB.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.