Tôi có một câu lệnh chèn SQL lớn cập nhật bảng tóm tắt. Quá trình này thường chạy hàng giờ và mất khoảng 5 đến 10 phút để tính toán các khoảng thời gian trong khoảng thời gian đó. Tôi "dại dột" chọn chạy nó trong khoảng thời gian 15 ngày và tôi tự hỏi liệu tôi có thể làm gì để có được tầm nhìn vào nơi nó đang ở. Quá trình đã chạy được 9 giờ rồi. Tôi chỉ đơn giản muốn biết liệu đó vẫn là truy vấn CHỌN đang chạy hay nếu nó đang chèn dữ liệu: Tôi cần biết liệu tôi có nên dừng nó và thực hiện các lô nhỏ hơn hay không, nếu tôi nên để nó kết thúc.
Tôi biết máy chủ đã ở đó được 9 giờ vì câu nói đó:
select
now() - xact_start
, procpid
, client_addr
, client_port
, current_query
from pg_stat_activity
where xact_start is not null
order by 1 desc
Truy vấn thực tế là:
INSERT INTO summary_show_unique_personas(period, show_id, persona_id, interactions_count)
SELECT
date_trunc('hour', created_at) AS period
, show_id
, persona_id
, COUNT(*)
FROM
twitter_interactions
JOIN show_bindings USING(interaction_id)
JOIN twitter_personas USING(screen_name)
WHERE
created_at >= '__PERIOD_START_AT__' AND created_at < '__PERIOD_END_AT__'
AND interaction_created_at >= '__PERIOD_START_AT__' AND interaction_created_at < '__PERIOD_END_AT__'
GROUP BY
1, 2, 3;