Trong bài đăng này, tôi đang chia sẻ một tập lệnh để tìm tổng mức sử dụng các tệp tràn công việc cho mỗi truy vấn đang chạy trong Greenplum.
Bất cứ khi nào chúng tôi thực hiện thao tác tổng hợp băm như GROUP BY hoặc DISTINCT trên hàng tỷ dữ liệu, trình thực thi truy vấn giữ dữ liệu này trong các tệp tạm thời được gọi là tệp tràn công việc.
Chúng tôi nên tối ưu hóa truy vấn của mình để giảm việc sử dụng tối đa các tệp tràn công việc vì nó làm giảm hiệu suất tổng thể và cũng yêu cầu thêm dung lượng đĩa.
Sử dụng tập lệnh bên dưới, chúng tôi có thể theo dõi việc sử dụng tệp tràn công việc cho mỗi truy vấn đang chạy và chúng tôi cũng có thể tối ưu hóa các truy vấn đang chạy dài.
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT gwupq.datname ,psa.usename ,gwupq.procpid ,gwupq.sess_id ,sum(gwupq.size)/1024::float as total_spill_size_kb ,sum(gwupq.numfiles) as total_spill_file FROM gp_toolkit.gp_workfile_usage_per_query as gwupq inner join pg_stat_activity psa on gwupq.procpid = psa.procpid and gwupq.sess_id = psa.sess_id GROUP BY 1,2,3,4; |