Tôi có một truy vấn hàng loạt mà tôi đang chạy hàng ngày trên cơ sở dữ liệu của mình. Tuy nhiên, nó dường như bị kẹt trong trạng thái nhàn rỗi và tôi gặp rất nhiều khó khăn trong việc gỡ lỗi những gì đang diễn ra.
Truy vấn là một tập hợp trên một bảng đồng thời được chèn, mà tôi đoán bằng cách nào đó liên quan đến vấn đề. (Tổng hợp trên dữ liệu của những ngày trước, do đó, phần chèn thêm không ảnh hưởng đến kết quả.)
Manh mối
Tôi đang chạy cái này bên trong một tập lệnh python bằng sqlalchemy. Tuy nhiên, tôi đã đặt cấp độ giao dịch thành tự động, vì vậy tôi không nghĩ mọi thứ đang bị cuốn vào một giao dịch. Mặt khác, tôi không thấy truy vấn bị treo khi tôi chạy thủ công trong thiết bị đầu cuối sql.
Bằng cách truy vấn
pg_stat_activity
, truy vấn ban đầu đi vào cơ sở dữ liệu nhưstate='active'
. Sau khoảng 15 giây, trạng thái sẽ thay đổi thành 'không hoạt động' và ngoài ra, trạng tháixact_start
được đặt thànhNULL
. Cờ chờ không bao giờ được đặt thành đúng.Trước khi tôi tìm ra autocommit cấp độ giao dịch cho sqlalchemy, thay vào đó nó sẽ treo ở trạng thái
'idle in transaction'
chứ không phải'idle'
. Và nó có thể bị treo ít thường xuyên hơn kể từ khi thực hiện thay đổi đó?
Tôi cảm thấy như mình không được trang bị để đào sâu hơn những gì tôi có về điều này. Bất kỳ thông tin phản hồi, thậm chí giải thích thêm về các trạng thái khác nhau và nội bộ postgres có liên quan mà không đưa ra câu trả lời chắc chắn, sẽ được đánh giá rất cao.
COMMIT
có câu hỏi nào được đưa ra để kết thúc giao dịch. Có vẻ như vấn đề của bạn có thể ở nơi khác ngoài db ..