Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4

F.30. pg_stat_statements - Theo dõi kèo chấp bóng đá hôm nay kê về lập kế hoạch và thực thi SQL#

Thepg_stat_statementsMô -đun cung cấp một phương tiện để theo dõi kèo chấp bóng đá hôm nay kê lập kế hoạch và thực thi của tất cả các 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 phải khởi động lại máy chủ để thêm hoặc xóa mô -đun. Ngoài ra, tính toán định danh truy vấn phải được bật để mô -đun được kích hoạt, được kèo chấp bóng đá hôm nay hiện tự động nếucompute_query_idđược đặt thànhAutohoặctrênhoặc bất kỳ mô-đun bên thứ ba nào tính toán số nhận dạng truy vấn được tải.

khipg_stat_statementsđang hoạt động, nó theo dõi kèo chấp bóng đá hôm nay kê trên tất cả các cơ sở dữ liệu của máy chủ. Để truy cập và thao tác các kèo chấp bóng đá hôm nay kê này, mô -đun cung cấp chế độ xempg_stat_statementspg_stat_statements_infovà Chức năng tiện íchpg_stat_statements_resetpg_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ữ kèo chấp bóng đá hôm nay cụ thể vớiTạo tiện ích mở rộng pg_stat_statements.

F.30.1. Thepg_stat_statementsXem13269_13272

kèo chấp bóng đá hôm nay 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 kết hợp riêng biệt của ID cơ sở dữ kèo chấp bóng đá hôm nay, ID người dùng, ID truy vấn và kèo chấp bóng đá hôm nay đó có phải là câu lệnh cấp cao nhất hay không (tối đa số lượng câu lệnh riêng biệt mà mô-đun có thể theo dõi). Các cột của chế độ xem được hiển thị trongBảng F.21.

Bảng F.21.pg_stat_statementscột

loại cột

Mô tả

userID oid(Tài kèo chấp bóng đá hôm nay tham khảopg_authid.oid)

oid của người dùng đã kèo chấp bóng đá hôm nay thi câu lệnh

DBID oid(Tài kèo chấp bóng đá hôm nay tham khảopg_database.oid)

oid của cơ sở dữ kèo chấp bóng đá hôm nay trong đó câu lệnh được thực thi

Toplevel bool

Đúng nếu truy vấn được kèo chấp bóng đá hôm nay thi dưới dạng câu lệnh cấp cao nhất (luôn luôn đúng nếupg_stat_statements.trackđược đặt thànhTOP)

QueryID Bigint

Mã băm để xác định các truy vấn được chuẩn hóa giống hệt nhau.

Truy vấn Text

Văn bản của một câu lệnh đại diện

kế kèo chấp bóng đá hôm nay Bigint

Số lần tuyên bố đã được lên kế kèo chấp bóng đá hôm nay (nếupg_stat_statements.track_planningđược bật, nếu không thì không)

TOTAL_PLAN_TIME Độ chính xác gấp đôi

Tổng thời gian dành cho việc lập kế kèo chấp bóng đá hôm nay tuyên bố, tính bằng mili giây (nếupg_stat_statements.track_planningđược bật, nếu không thì không)

min_plan_time Double Precision

Thời gian tối thiểu dành cho việc lập kế kèo chấp bóng đá hôm nay tuyên bố, tính bằng mili giây. Trường này sẽ bằng không nếupg_stat_statements.track_planningbị vô hiệu hóa hoặc nếu bộ đếm đã được đặt lại bằng cách sử dụngpg_stat_statements_resetchức năng vớiminmax_onlyTham số được đặt thànhTRUEvà chưa bao giờ được lên kế kèo chấp bóng đá hôm nay kể từ đó.

MAX_PLAN_TIME 18030_18048

Thời gian tối đa dành cho việc lập kế kèo chấp bóng đá hôm nay tuyên bố, tính bằng mili giây. Trường này sẽ bằng không nếupg_stat_statements.track_planningbị vô hiệu hóa hoặc nếu bộ đếm đã được đặt lại bằng cách sử dụngpg_stat_statements_resetHàm vớiminmax_onlyTham số được đặt thànhTRUEvà chưa bao giờ được lên kế kèo chấp bóng đá hôm nay kể từ đó.

mean_plan_time Double Precision

Thời gian trung bình dành cho việc lên kế kèo chấp bóng đá hôm nay cho tuyên bố, tính bằng mili giây (nếupg_stat_statements.track_planningđược bật, nếu không thì không)

stddev_plan_time độ chính xác gấp đôi

Độ lệch chuẩn dân số về thời gian dành cho việc lập kế kèo chấp bóng đá hôm nay tuyên bố, tính bằng mili giây (nếupg_stat_statements.track_planningđược bật, nếu không thì không)

cuộc gọi Bigint

Số lần câu lệnh đã được kèo chấp bóng đá hôm nay thi

Total_exec_time độ chính xác gấp đôi

Tổng thời gian dành cho việc kèo chấp bóng đá hôm nay hiện tuyên bố, tính bằng mili giây

min_exec_time Độ chính xác gấp đôi

20221_20381pg_stat_statements_resetchức năng vớiminmax_onlyTham số được đặt thànhTRUE

MAX_EXEC_TIME độ chính xác gấp đôi

20812_20972pg_stat_statements_resetchức năng vớiminmax_onlyTham số được đặt thànhTRUE

mean_exec_time Double Precision

Thời gian trung bình dành cho việc kèo chấp bóng đá hôm nay hiện tuyên bố, tính bằng mili giây

stddev_exec_time Double Precision

Độ lệch chuẩn dân số thời gian dành cho việc kèo chấp bóng đá hôm nay hiện tuyên bố, tính bằng mili giây

hàng Bigint

Tổng số hàng được truy xuất hoặc bị ảnh hưởng bởi câu lệnh

shared_blks_hit Bigint

Tổng số lượt truy cập bộ đệm khối được chia sẻ bởi câu lệnh

shared_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 truy 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

25407_25429 Double Precision

Tổng thời gian Tuyên bố dành cho việc đọc các khối chia sẻ, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không)

shared_blk_write_time Double Precision

Tổng thời gian Tuyên bố dành cho các khối chia sẻ, tính bằng mili giây (nếu26117_26134được bật, nếu không thì không)

local_blk_read_time Double Precision

Tổng thời gian Tuyên bố dành cho việc đọc các khối cục bộ, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không)

local_blk_write_time Double Precision

Tổng thời gian Tuyên bố dành cho các khối địa phương, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không)

TEMP_BLK_READ_TIME Double Precision

Tổng thời gian tuyên bố dành cho việc đọc các khối tệp tạm thời, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không)

TEMP_BLK_WRITE_TIME Double Precision

Tổng thời gian Tuyên bố dành cho việc viết các khối tệp tạm thời, tính bằng mili giây (nếuTrack_io_timingđược bật, nếu không thì không)

Wal_Records Bigint

Tổng số bản ghi Wal được tạo bởi câu lệnh

Wal_fpi Bigint

Tổng số hình ảnh toàn trang được tạo bởi câu lệnh

Wal_bytes Số

Tổng số lượng Wal được tạo bởi câu lệnh trong byte

JIT_FENSTS Bigint

29223_29280

jit_generation_time Double Precision

Tổng thời gian dành cho tuyên bố để tạo mã JIT, tính bằng mili giây

jit_inlining_count Bigint

Số lần chức năng đã được in

jit_inlining_time Độ chính xác gấp đôi

Tổng thời gian dành cho tuyên bố về các chức năng nội tuyến, tính bằng mili giây

jit_optimization_count Bigint

Số lần câu lệnh đã được tối ưu hóa

jit_optimization_time Độ chính xác gấp đôi

Tổng thời gian dành cho tuyên bố về tối ưu hóa, tính bằng mili giây

jit_emission_count Bigint

Số lần mã đã được phát ra

jit_emission_time Double Precision

Tổng thời gian dành cho tuyên bố cho mã phát ra, tính bằng mili giây

jit_deform_count Bigint

Tổng số chức năng biến dạng tuple jit-được tổng hợp bởi câu lệnh

jit_deform_time Độ chính xác gấp đôi

Tổng thời gian dành cho câu lệnh cho các hàm biến dạng tuple jit, tính bằng mili giây

StatS_Since dấu thời gian với múi giờ

Thời gian thu thập kèo chấp bóng đá hôm nay kê bắt đầu cho tuyên bố này

minmax_stats_since dấu thời gian với múi giờ

Thời gian thu thập kèo chấp bóng đá hôm nay kê tối đa/tối đa bắt đầu cho câu lệnh này (Trườngmin_plan_time, MAX_PLAN_TIME, min_exec_timeMAX_EXEC_TIME)


Vì lý do bảo mật, chỉ có siêu người dùng và vai trò với các đặc quyền củaPG_READ_ALL_STATSVai trò được phép xem văn bản SQL vàQueryIDcủa các 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 kèo chấp bóng đá hôm nay kê nếu chế độ xem đã được cài đặt trong cơ sở dữ liệu của họ.

Truy vấn có thể kèo chấp bóng đá hôm nay hiện được (nghĩa là,Chọn, Chèn, Cập nhật, XóaHợp nhất) và các lệnh tiện ích được kết hợp thành mộtpg_stat_statementsmục nhập bất cứ khi nào chúng có cấu trúc truy vấn giống hệt nhau kèo chấp bóng đá hôm nay 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ừ các giá trị của các hằng số kèo chấp bóng đá hôm nay nghĩa đen xuất hiện trong truy vấn.

Lưu ý

Các chi tiết sau đây về thay thế liên tục vàQueryIDChỉ áp dụng khicompute_query_idđược bật. Nếu bạn sử dụng mô -đun bên ngoài thay thế để tính toánQueryID, Bạn nên tham khảo tài kèo chấp bóng đá hôm nay của nó để biết chi tiết.

Khi giá trị của hằng số đã bị bỏ qua với mục đích khớp truy vấn với các 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_statementsHiển thị. Phần còn lại của văn bản truy vấn là của truy vấn đầu tiên có cụ thểQueryIDGiá trị băm liên quan đếnpg_stat_statementsEntry.

Truy vấn trên đó có thể được áp dụng chuẩn hóa với các giá trị không đổi trongpg_stat_statements35229_35358pg_stat_statements.max. Thepg_stat_statements_infoXem, được thảo luận bên dưới trongPhần F.30.2, Cung cấp kèo chấp bóng đá hôm nay kê về các giải quyết nhập cảnh.

Trong một số trường hợp, các 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_statements35850_36114

kể từqueryIDGiá trị băm được tính toán trên biểu diễn phân tích sau giả mạo của các truy vấn, thì điều ngược lại cũng có thể: các truy vấn với các văn bản giống hệt nhau có thể xuất hiện dưới dạng các mục riêng biệt, nếu chúng có ý nghĩa khác nhau do các yếu tố khác nhau nhưsearch_pathCài đặt.

Người tiêu dùngpg_stat_statementscó thể muốn sử dụngQueryID(có lẽ kết hợp vớidbiduserID) 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 truy vấn 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ủaqueryIDGiá 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, các định danh đối tượng bên trong xuất hiện trong biểu diễn này. Điều này có một số ý nghĩa phản trực giác. Ví dụ,pg_stat_statements37241_37561QueryIDsẽ ổn định trên các phiên bản chính củaPOSTGRESQL.

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 nhauQueryID37840_37977QueryID38015_38150

Nói chung, có thể giả định rằngQueryIDGiá trị ổn định giữa các phiên bản nhỏ của phiên bảnPOSTGRESQL, cung cấp rằng các trường hợp đang chạy trên cùng một kiến ​​trúc máy và chi tiết siêu dữ kèo chấp bóng đá hôm nay danh mục phù hợp. Khả năng tương thích sẽ chỉ bị phá vỡ giữa các phiên bản nhỏ như là phương sách cuối cùng.

Các ký hiệu tham số được sử dụng để thay thế các hằng số trong các văn bản truy vấn đại diện bắt đầu từ số tiếp kèo chấp bóng đá hôm nay sau khi cao nhất$ntham số trong văn bản truy vấn gốc hoặc$ 1Nếu không có. Điều đáng chú ý là trong một số trường hợp có thể có các ký hiệu tham số ẩn ảnh hưởng đến việc đánh số này. Ví dụ,PL/PGSQLSử dụng các ký hiệu tham số ẩn để chèn các giá trị của các biến cục bộ chức năng kèo chấp bóng đá hôm nayo các truy vấn, để aPL/PGSQLcâu nhưChọn i + 1 kèo chấp bóng đá hôm nayo JSẽ có văn bản đại diện nhưChọn i + $ 2.

Các văn bản truy vấn đại diện được giữ trong một tệp đĩa ngoài và không tiêu thụ bộ nhớ chia sẻ. Do đó, ngay cả các văn bản truy vấn rất dài cũng có thể được lưu trữ thành công. Tuy nhiên, nếu nhiều văn bản truy vấn dài được tích lũy, tệp bên ngoài có thể phát triển không thể quản lý lớn. Như một phương thức phục hồi nếu điều đó xảy ra,pg_stat_statementsCó thể chọn loại bỏ các văn bản truy vấn, trong đó tất cả các mục hiện có trongpg_stat_statementsXem sẽ hiển thị nullTruy vấnTrường, mặc dù các kèo chấp bóng đá hôm nay kê liên quan đến mỗi39891_39900đượ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 các đợt tái phát.

kế kèo chấp bóng đá hôm naycuộc gọiKhông phải lúc nào cũng được kết hợp vì thống kê lập kế hoạch và thực hiện được cập nhật ở giai đoạn kết thúc tương ứng của họ và chỉ cho các hoạt động thành công. Ví dụ: nếu một tuyên bố được lên kế hoạch thành công nhưng thất bại trong giai đoạn thực hiện, chỉ có kèo chấp bóng đá hôm nay kê lập kế hoạch của nó sẽ được cập nhật. Nếu kế hoạch bị bỏ qua vì một kế hoạch được lưu trong bộ nhớ cache được sử dụng, chỉ có kèo chấp bóng đá hôm nay kê thực thi của nó sẽ được cập nhật.

F.30.2. Thepg_stat_statements_infoXem#

kèo chấp bóng đá hôm nay kê của40997_41017Bản thân mô -đun được kèo chấp bóng đá hôm nay dõi và cung cấp thông qua chế độ xem có tênpg_stat_statements_info. Chế độ xem này chỉ chứa một hàng duy nhất. Các cột của chế độ xem được hiển thị trongBảng F.22.

Bảng F.22.pg_stat_statements_infocột

loại cột

Mô tả

Dealloc Bigint

Tổng số lầnpg_stat_statementsCác mục về các câu lệnh ít được kèo chấp bóng đá hôm nay hiện nhất đã được giải quyết vì các câu lệnh khác biệt hơnpg_stat_statements.maxĐã được quan sát

StatS_Reset dấu thời gian với múi giờ

Thời gian mà tất cả các kèo chấp bóng đá hôm nay kê trongpg_stat_statementsXem được đặt lại cuối cùng.


F.30.3. Chức năng#

43332_43450

pg_stat_statements_resetDiscards kèo chấp bóng đá hôm nay kê được thu thập cho đến naypg_stat_statementsTương ứng với được chỉ địnhuserID, dbidQueryID. Nếu bất kỳ tham số nào không được chỉ định, giá trị mặc định0(không hợp lệ) được sử dụng cho mỗi người trong số chúng và các kèo chấp bóng đá hôm nay kê phù hợp với các tham số khác sẽ được đặt lại. Nếu không có tham số nào được chỉ định hoặc tất cả các tham số được chỉ định là0(không hợp lệ), nó sẽ loại bỏ tất cả các kèo chấp bóng đá hôm nay kê. Nếu tất cả các kèo chấp bóng đá hôm nay kê trongpg_stat_statementsXem bị loại bỏ, nó cũng sẽ đặt lại kèo chấp bóng đá hôm nay kê trongpg_stat_statements_infoXem. Khiminmax_onlyTRUEChỉ các giá trị của thời gian kèo chấp bóng đá hôm nay hiện và lập kế hoạch tối đa và tối đa mới được đặt lại (nghĩa làmin_plan_time, MAX_PLAN_TIME, MIN_EXEC_TIME44753_44768Trường). Giá trị mặc định chominmax_onlytham số làSai. Thời gian của lần đặt lại tối đa/tối đa được kèo chấp bóng đá hôm nay hiện được hiển thị trongminmax_stats_sinceTrường củapg_stat_statementsXem. Hàm này trả về thời gian đặt lại. Lần này được lưu kèo chấp bóng đá hôm nayoSTATS_RESETTrườngpg_stat_statements_infoXem hoặc đếnminmax_stats_sinceTrường củapg_stat_statementsXem nếu thiết lập lại tương ứng được kèo chấp bóng đá hôm nay hiện. Theo mặc định, chức năng này chỉ có thể được kèo chấp bóng đá hôm nay thi bởi các siêu người dùng. Truy cập có thể được cấp cho người khác bằng cách sử dụngGrant.

Thepg_stat_statementsChế độ xem được định nghĩa kèo chấp bóng đá hôm nay chức năng cũng có tênpg_stat_statements. Có thể cho khách hàng gọipg_stat_statementsChức năng trực tiếp và bằng cách chỉ địnhshowText: = falseCó văn bản truy vấn bị bỏ qua (nghĩa làoutĐối số tương ứng với chế độ xemTruy vấnCột sẽ trả về nulls). Tính năng này nhằm hỗ trợ các công cụ bên ngoài có thể muốn tránh chi phí của các văn bản truy vấn liên tục truy xuất có độ dài không xác định. Thay kèo chấp bóng đá hôm nayo đó, các công cụ như vậy có thể lưu trữ văn bản truy vấn đầu tiên được quan sát cho mỗi mục nhập, vì đó là tất cảpg_stat_statementsBản thân nó, sau đó chỉ truy xuất các văn bản truy vấn khi cần thiết. Vì máy chủ lưu trữ các 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_statementsDữ kèo chấp bóng đá hôm nay.

F.30.4. Tham số cấu hình#

pg_stat_statements.max(Số nguyên)

pg_stat_statements.maxlà số lượng câu lệnh tối đa được kèo chấp bóng đá hôm nay dõi bởi mô -đun (nghĩa là, số lượng hàng tối đa trongpg_stat_statements47708_47902pg_stat_statements_infoXem. Giá trị mặc định là 5000. Tham số này chỉ có thể được đặt ở máy chủ bắt đầu.

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Để kèo chấp bóng đá hôm nay dõi các 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ảđể kèo chấp bóng đá hôm nay dõi các câu lệnh lồng nhau (chẳng hạn như các câu lệnh được gọi trong các chức năng) hoặcKhôngĐể vô hiệu hóa bộ sưu tập kèo chấp bóng đá hôm nay kê tuyên bố. Giá trị mặc định làTOP. Chỉ các 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_utilityKiểm soát xem các lệnh tiện ích có được kèo chấp bóng đá hôm nay dõi bởi mô -đun hay không. Các lệnh tiện ích là tất cả các lệnh khác ngoàiChọn, Chèn, Cập nhật, XóaHợp nhất. Giá trị mặc định làtrên. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

pg_stat_statements.track_planning(Boolean)

pg_stat_statements.track_planningKiểm soát xem các hoạt động và thời lượng lập kế hoạch có được theo dõi bởi mô -đun hay không. Kích hoạt tham số này có thể phải chịu một hình phạt hiệu suất đáng chú ý, đặc biệt là khi các câu lệnh có cấu trúc truy vấn giống hệt nhau được kèo chấp bóng đá hôm nay thi bởi nhiều kết nối đồng thời cạnh tranh để cập nhật một số lượng nhỏpg_stat_statementsmục. Giá trị mặc định làTẮT. Chỉ các 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.saveChỉ định có lưu kèo chấp bóng đá hôm nay kê tuyên bố trên các lần tắt máy chủ hay không. Nếu đó làTẮTSau đó, kèo chấp bóng đá hôm nay 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.confTệ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ệ 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.

Những tham số này phải được đặt trongPostgreSql.conf. Cách sử dụng điển hình có thể là:

# Postgresql.conf
Shared_Preload_L Libries = 'PG_Stat_Statements'

compute_query_id = on
pg_stat_statements.max = 10000
pg_stat_statements.track = all

F.30.5. Đầu ra mẫu#

51917_56346

F.30.6. Tác giả#

Takahiro Itagaki. Truy vấn chuẩn hóa được thêm bởi Peter Geoghegan.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài kèo chấp bóng đá hôm nay không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài kèo chấp bóng đá hôm nay.