PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thu thập các tập hợp thống kê lớn với pg_stat_statements?

1.

từ những gì tôi đã đọc, nó băm truy vấn và giữ nó trong DB, lưu văn bản vào FS. Vì vậy, mối quan tâm tiếp theo được mong đợi nhiều hơn khi bộ nhớ chia sẻ bị quá tải:

hàm băm của văn bản nhỏ hơn rất nhiều so với văn bản, đến mức tôi nghĩ bạn không nên lo lắng về việc tiêu thụ bộ nhớ mở rộng so với các truy vấn dài. Đặc biệt khi biết rằng tiện ích mở rộng sử dụng Trình phân tích truy vấn (sẽ hoạt động cho MỌI truy vấn ANYWAY ):

Đặt pg_stat_statements.max Lớn hơn 10 lần nên bộ nhớ chia sẻ gấp 10 lần tôi tin. Sự phát triển phải là tuyến tính . Nó không nói như vậy trong tài liệu , nhưng về mặt logic thì phải như vậy.

Không có câu trả lời nếu đặt cài đặt thành giá trị riêng biệt là an toàn hay không, vì không có dữ liệu về các giá trị cấu hình khác và HW mà bạn có. Nhưng vì tốc độ tăng trưởng phải là tuyến tính, hãy xem xét câu trả lời này:"nếu bạn đặt nó thành 5K và thời gian chạy truy vấn hầu như không tăng, thì việc đặt nó thành 50K sẽ kéo dài nó gần như không có gì gấp mười". BTW, câu hỏi của tôi - ai là người gồng mình để đào 50000 câu lệnh chậm? :)

2.

Tiện ích mở rộng này đã tạo tổng hợp trước cho tuyên bố "không có giá trị". Bạn có thể chọn nó ngay trên DB, vì vậy việc di chuyển dữ liệu sang db khác và chọn nó ở đó sẽ chỉ mang lại cho bạn lợi ích khi dỡ DB ban đầu và tải một DB khác. Nói cách khác, bạn tiết kiệm 50MB cho một truy vấn trên bản gốc, nhưng lại chi tiêu tương tự cho một truy vấn khác. Nó có ý nghĩa không? Đối với tôi - có. Đây là những gì tôi tự làm. Nhưng tôi cũng lưu các kế hoạch thực thi cho câu lệnh (không phải là một phần của phần mở rộng pg_stat_statements). Tôi tin rằng nó phụ thuộc vào những gì bạn có và những gì bạn có. Chắc chắn không cần điều đó chỉ vì một số truy vấn. Một lần nữa trừ khi bạn có tệp lớn đến mức tiện ích mở rộng có thể




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm sự khác biệt giữa các dấu thời gian tính bằng giây trong PostgreSQL bằng JOOQ

  2. sử dụng SAO CHÉP TỪ trong ứng dụng Rails trên Heroku với phần phụ trợ Postgresql

  3. Java - ngày được lưu như một ngày trước đó

  4. docker SHM_SIZE / dev / shm:thay đổi kích thước bộ nhớ dùng chung

  5. Khi nào cần chạy REINDEX trong postgres