2014-07-01 17 views
5

Trong pg_stat_activity Tôi có thể thấy rằng một khách hàng đang làm việc theo cách của mình thông qua một số kết quả truy vấn bằng cách sử dụng con trỏ. Nhưng làm cách nào tôi có thể thấy truy vấn ban đầu là gì?Cách xem con trỏ cơ sở truy vấn hoạt động

pipeline=> select pid, query from pg_stat_activity where state = 'active' order by query_start; 
    pid |               query 
-------+-------------------------------------------------------------------------------------- 
    6734 | FETCH FORWARD 1000 FROM "c_109886590_1" 
26731 | select pid, query from pg_stat_activity where state = 'active' order by query_start; 
(2 rows) 

tôi thấy có pg_cursors, nhưng nó là rỗng:

pipeline=> select * from pg_cursors; 
name | statement | is_holdable | is_binary | is_scrollable | creation_time 
------+-----------+-------------+-----------+---------------+--------------- 
(0 rows) 

Máy chủ là trên AWS RDS.

pipeline=> select version(); 
                version 
-------------------------------------------------------------------------------------------------------------- 
PostgreSQL 9.3.3 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2), 64-bit 
(1 row) 

Trả lời

6

Bạn không thể.

pg_cursors là phụ trợ cục bộ. Nó không hiển thị con trỏ không phải là một phần của kết nối hiện tại.

PostgreSQL không có cách nào để tìm hiểu truy vấn nào làm nền tảng con trỏ từ một phiên khác.

Cách duy nhất tôi có thể nghĩ là thực hiện việc này là sử dụng phân tích nhật ký, với log_statement = alllog_line_prefix phù hợp.

Các vấn đề liên quan