Thepg_stat_statements
Mô -đun cung cấp một phương tiện để theo dõi số liệu thống kê thực thi của tất cả kèo bóng đá euro câu lệnh SQL được thực hiện bởi một máy chủ.
Mô -đun phải được tải bằng cách thêmpg_stat_statements
đếnshared_preload_l LibriesinPostgreSql.conf
, vì nó yêu cầu bộ nhớ chia sẻ bổ sung. Điều này có nghĩa là cần khởi động lại máy chủ để thêm hoặc xóa mô -đun.
khipg_stat_statements
được tải, nó theo dõi số liệu thống kê trên tất cả kèo bóng đá euro cơ sở dữ liệu của máy chủ. Để truy cập và thao tác kèo bóng đá euro số liệu thống kê này, mô -đun cung cấp chế độ xem,pg_stat_statements
và Chức năng tiện íchpg_stat_statements_reset
vàpg_stat_statements
. Chúng không có sẵn trên toàn cầu nhưng có thể được bật cho một cơ sở dữ liệu cụ thể vớiTạo tiện ích mở rộng pg_stat_statements
.
pg_stat_statements
XemThống kê được thu thập bởi mô -đun được cung cấp thông qua chế độ xem có tênpg_stat_statements
. Chế độ xem này chứa một hàng cho mỗi ID cơ sở dữ liệu riêng biệt, ID người dùng và ID kèo bóng đá euro (tối đa số lượng câu lệnh riêng biệt mà mô -đun có thể theo dõi).Bảng F.21.
Bảng F.21.pg_stat_statements
cột
tên | loại | Tài liệu tham khảo | Mô tả |
---|---|---|---|
userID |
OID |
|
oid của người dùng đã thực thi câu lệnh |
dbid |
oid |
|
oid của cơ sở dữ liệu trong đó câu lệnh được thực thi |
QueryID |
Bigint |
Mã băm nội bộ, được tính toán từ cây phân tích phân tích | |
Cập nhật PGBench_Tellers Đặt tbalance = tbalance + $ 1 trong đó tid = $ 2; |
Text |
Văn kèo bóng đá euro của một câu lệnh đại diện | |
3000 |
Bigint |
Số lần được thực hiện | |
Total_Time |
Double Precision |
Tổng thời gian dành cho tuyên bố, tính bằng mili giây | |
min_time |
Độ chính xác gấp đôi |
Thời gian tối thiểu dành cho tuyên bố, tính bằng mili giây | |
MAX_TIME |
Double Precision |
Thời gian tối đa dành cho tuyên bố, tính bằng mili giây | |
mean_time |
Double Precision |
Thời gian trung bình dành cho tuyên bố, tính bằng mili giây | |
stddev_time |
độ chính xác gấp đôi |
Độ lệch chuẩn dân số của thời gian dành cho tuyên bố, tính bằng mili giây | |
hàng |
Bigint |
Tổng số hàng được kèo bóng đá euro xuất hoặc bị ảnh hưởng bởi câu lệnh | |
shared_blks_hit |
Bigint |
Tổng số lần kèo bóng đá euro cập bộ đệm khối được chia sẻ bởi câu lệnh | |
chia sẻ_blks_read |
Bigint |
Tổng số khối được chia sẻ được đọc bởi câu lệnh | |
chia sẻ_blks_dirtied |
Bigint |
Tổng số khối được chia sẻ bị bẩn bởi câu lệnh | |
shared_blks_written |
Bigint |
Tổng số khối chia sẻ được viết bởi câu lệnh | |
local_blks_hit |
Bigint |
Tổng số lần kèo bóng đá euro cập bộ đệm khối cục bộ bởi câu lệnh | |
local_blks_read |
Bigint |
Tổng số khối cục bộ được đọc bởi câu lệnh | |
local_blks_dirtied |
Bigint |
Tổng số khối cục bộ bị bẩn bởi câu lệnh | |
local_blks_written |
Bigint |
Tổng số khối cục bộ được viết bởi câu lệnh | |
TEMP_BLKS_READ |
Bigint |
Tổng số khối nhiệt độ được đọc bởi câu lệnh | |
TEMP_BLKS_WRITTEN |
Bigint |
Tổng số khối nhiệt độ được viết bởi câu lệnh | |
blk_read_time |
Double Precision |
Tổng thời gian tuyên bố dành cho kèo bóng đá euro khối đọc, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không) | |
blk_write_time |
Double Precision |
Tổng thời gian Tuyên bố dành cho kèo bóng đá euro khối viết, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không) |
Vì lý do bảo mật, chỉ có siêu người dùng và thành viên củaPG_READ_ALL_STATS
Vai trò được phép xem văn kèo bóng đá euro SQL vàQueryID
của kèo bóng đá euro truy vấn được thực hiện bởi những người dùng khác. Tuy nhiên, người dùng khác có thể thấy số liệu thống kê nếu chế độ xem đã được cài đặt trong cơ sở dữ liệu của họ.
kèo bóng đá euro có thể thực hiện được (nghĩa làChọn
, Chèn
, Cập nhật
vàXóa
) được kết hợp thành mộtpg_stat_statements
mục nhập bất cứ khi nào chúng có cấu trúc truy vấn giống hệt nhau theo tính toán băm nội bộ. Thông thường, hai truy vấn sẽ được coi là giống nhau cho mục đích này nếu chúng tương đương về mặt ngữ nghĩa ngoại trừ kèo bóng đá euro giá trị của kèo bóng đá euro hằng số theo nghĩa đen xuất hiện trong truy vấn.
Khi giá trị của hằng số đã bị bỏ qua với mục đích khớp truy vấn với kèo bóng đá euro truy vấn khác, hằng số được thay thế bằng ký hiệu tham số, chẳng hạn như$ 1
, trongpg_stat_statements
Hiển thị. Phần còn lại của văn bản kèo bóng đá euro là của kèo bóng đá euro đầu tiên có cụ thểQueryID
Giá trị băm liên quan đếnpg_stat_statements
Entry.
Trong một số trường hợp, kèo bóng đá euro truy vấn có văn bản khác nhau rõ ràng có thể được hợp nhất thành mộtpg_stat_statements
mục nhập. Thông thường, điều này sẽ chỉ xảy ra đối với kèo bóng đá euro truy vấn tương đương về mặt ngữ nghĩa, nhưng có một cơ hội nhỏ về kèo bóng đá euro vụ va chạm băm khiến kèo bóng đá euro truy vấn không liên quan được hợp nhất thành một mục.
kể từQueryID
Giá trị băm được tính toán trên biểu diễn phân tích sau phân tích của kèo bóng đá euro truy vấn, thì điều ngược lại cũng có thể: kèo bóng đá euro truy vấn với kèo bóng đá euro văn bản giống hệt nhau có thể xuất hiện dưới dạng kèo bóng đá euro mục riêng biệt, nếu chúng có ý nghĩa khác nhau do kèo bóng đá euro yếu tố khác nhau nhưsearch_path
Cài đặt.
Người tiêu dùngpg_stat_statements
có thể muốn sử dụngQueryID
(có lẽ kết hợp vớiDBID
vàuserID
) như một định danh ổn định và đáng tin cậy hơn cho mỗi mục so với văn bản kèo bóng đá euro của nó. Tuy nhiên, điều quan trọng là phải hiểu rằng chỉ có những đảm bảo hạn chế xung quanh sự ổn định củaQueryID
Giá trị băm. Do định danh có nguồn gốc từ cây phân tích sau phân tích sau, giá trị của nó là một hàm, trong số những thứ khác, kèo bóng đá euro định danh đối tượng bên trong xuất hiện trong biểu diễn này.pg_stat_statements
Sẽ coi hai truy vấn giống hệt nhau là khác biệt, nếu họ tham chiếu một bảng bị bỏ và tái tạo giữa kèo bóng đá euro lần thực hiện hai truy vấn. Quá trình băm cũng nhạy cảm với sự khác biệt trong kiến trúc máy và kèo bóng đá euro khía cạnh khác của nền tảng.QueryID
sẽ ổn định trên kèo bóng đá euro phiên bản chính củaPostgreSQL.
như một nguyên tắc của ngón tay cái,QueryID
kèo bóng đá euro giá trị có thể được giả sử là ổn định và chỉ có thể so sánh miễn là phiên bản máy chủ cơ bản và chi tiết siêu dữ liệu danh mục vẫn giống hệt nhau. Hai máy chủ tham gia sao chép dựa trên phát lại WAL vật lý có thể được dự kiến sẽ giống hệt nhauQueryID
Giá trị cho cùng một truy vấn. Tuy nhiên, kèo bóng đá euro sơ đồ sao chép logic không hứa hẹn sẽ giữ kèo bóng đá euro bản sao giống hệt nhau trong tất cả kèo bóng đá euro chi tiết liên quan, vì vậyqueryID
sẽ không phải là một định danh hữu ích để tích lũy chi phí trên một tập hợp kèo bóng đá euro bản sao logic. Nếu nghi ngờ, thử nghiệm trực tiếp được khuyến nghị.
kèo bóng đá euro ký hiệu tham số được sử dụng để thay thế kèo bóng đá euro hằng số trong kèo bóng đá euro văn bản truy vấn đại diện bắt đầu từ số tiếp theo sau khi cao nhất$
n
tham số trong văn bản kèo bóng đá euro gốc hoặc$ 1
Nếu không có. Điều đáng chú ý là trong một số trường hợp có thể có kèo bóng đá euro ký hiệu tham số ẩn ảnh hưởng đến việc đánh số này.PL/PGSQLSử dụng kèo bóng đá euro ký hiệu tham số ẩn để chèn kèo bóng đá euro giá trị của kèo bóng đá euro biến cục bộ chức năng vào kèo bóng đá euro truy vấn, để aPL/PGSQLcâu nhưChọn I + 1 vào J
Sẽ có văn kèo bóng đá euro đại diện nhưChọn i + $ 2
.
kèo bóng đá euro văn bản truy vấn đại diện được lưu trong tệp đĩa ngoài và không tiêu thụ bộ nhớ chia sẻ. Do đó, ngay cả kèo bóng đá euro văn bản truy vấn rất dài cũng có thể được lưu trữ thành công.pg_stat_statements
Có thể chọn loại bỏ kèo bóng đá euro văn bản truy vấn, trong đó tất cả kèo bóng đá euro mục hiện có trongpg_stat_statements
Xem sẽ hiển thị nullCập nhật PGBench_Tellers Đặt tbalance = tbalance + $ 1 trong đó tid = $ 2;
Trường, mặc dù kèo bóng đá euro số liệu thống kê liên quan đến mỗiQueryID
được bảo tồn. Nếu điều này xảy ra, hãy xem xét giảmpg_stat_statements.max
Để ngăn chặn kèo bóng đá euro đợt tái phát.
pg_stat_statements_reset () trả về void
pg_stat_statements_reset
loại bỏ tất cả kèo bóng đá euro số liệu thống kê được thu thập cho đến naypg_stat_statements
. Theo mặc định, chức năng này chỉ có thể được thực thi bởi Superusers.
Thepg_stat_statements
Chế độ xem được xác định theo chức năng cũng có tênpg_stat_statements
. Có thể cho khách hàng gọipg_stat_statements
Chức năng trực tiếp và bằng cách chỉ địnhshowText: = false
Có văn bản kèo bóng đá euro bị bỏ qua (nghĩa làout
Đối số tương ứng với chế độ xemCập nhật PGBench_Tellers Đặt tbalance = tbalance + $ 1 trong đó tid = $ 2;
Cột sẽ trả về nulls). Tính năng này nhằm hỗ trợ kèo bóng đá euro công cụ bên ngoài có thể muốn tránh chi phí của kèo bóng đá euro văn bản truy vấn liên tục truy xuất có độ dài không xác định.pg_stat_statements
Bản thân nó, sau đó chỉ truy xuất kèo bóng đá euro văn bản truy vấn khi cần thiết. Vì máy chủ lưu trữ kèo bóng đá euro văn bản truy vấn trong một tệp, cách tiếp cận này có thể làm giảm I/O vật lý để kiểm tra lặp lạipg_stat_statements
Dữ liệu.
pg_stat_statements.max
(Số nguyên
)pg_stat_statements.max
là số lượng câu lệnh tối đa được theo dõi bởi mô -đun (nghĩa là, số lượng hàng tối đa trongpg_stat_statements
Xem). Nếu kèo bóng đá euro tuyên bố khác biệt hơn được quan sát, thông tin về kèo bóng đá euro tuyên bố ít được thực hiện nhất bị loại bỏ.
pg_stat_statements.track
(enum
)pg_stat_statements.track
Điều khiển câu lệnh nào được tính bởi mô -đun. Chỉ địnhTOP
Để theo dõi kèo bóng đá euro câu lệnh cấp cao nhất (những câu được phát hành trực tiếp),tất cả
để theo dõi kèo bóng đá euro câu lệnh lồng nhau (chẳng hạn như kèo bóng đá euro câu lệnh được gọi trong kèo bóng đá euro chức năng) hoặcKhông
Để vô hiệu hóa bộ sưu tập thống kê tuyên bố. Giá trị mặc định làTOP
. Chỉ kèo bóng đá euro siêu người dùng mới có thể thay đổi cài đặt này.
pg_stat_statements.track_utility
(Boolean
)pg_stat_statements.track_utility
Kiểm soát xem kèo bóng đá euro lệnh tiện ích có được theo dõi bởi mô -đun hay không. kèo bóng đá euro lệnh tiện ích là tất cả kèo bóng đá euro lệnh khác ngoàiChọn
, Chèn
, Cập nhật
vàXóa
. Giá trị mặc định làtrên
. Chỉ kèo bóng đá euro siêu người dùng mới có thể thay đổi cài đặt này.
pg_stat_statements.save
(Boolean
)pg_stat_statements.save
Chỉ định có lưu số liệu thống kê tuyên bố trên kèo bóng đá euro lần tắt máy chủ hay không. Nếu đó làTẮT
Sau đó, số liệu thống kê không được lưu khi tắt máy cũng như không tải lại khi bắt đầu máy chủ. Giá trị mặc định làtrên
. Tham số này chỉ có thể được đặt trongPostgreSql.conf
Tệp hoặc trên dòng lệnh máy chủ.
Mô -đun yêu cầu thêm bộ nhớ chia sẻ tỷ lệ thuận vớipg_stat_statements.max
. Lưu ý rằng bộ nhớ này được tiêu thụ bất cứ khi nào mô -đun được tải, ngay cả khipg_stat_statements.track
được đặt thànhKhông
.
kèo bóng đá euro tham số này phải được đặt trongPostgreSql.conf
. Cách sử dụng điển hình có thể là:
# Postgresql.conf
băng ghế =# chọn pg_stat_statements_reset ();
Takahiro Itagaki<itagaki.takahiro@oss.ntt.co.jp
. Cập nhật PGBench_Tellers Đặt tbalance = tbalance + $ 1 trong đó tid = $ 2; chuẩn hóa được thêm bởi Peter Geoghegan<peter@2ndquadrant.com
.