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
Tài liệu kèo bóng đá pháp dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá pháp phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

F.4. auto_explain

TheAuto_ExplainMô -đun cung cấp một phương tiện để ghi lại kèo bóng đá pháp kế hoạch thực thi của kèo bóng đá pháp câu lệnh chậm, mà không phải chạyGiải thíchbằng tay. Điều này đặc biệt hữu ích để theo dõi kèo bóng đá pháp truy vấn không được tối ưu hóa trong kèo bóng đá pháp ứng dụng lớn.

Mô-đun không cung cấp kèo bóng đá pháp hàm có thể truy cập SQL. Để sử dụng nó, chỉ cần tải nó vào máy chủ. Bạn có thể tải nó vào một phiên riêng lẻ:

load 'auto_explain';

(Bạn phải là siêu nhân để làm điều đó.) Cách sử dụng điển hình hơn là tải nó vào một số hoặc tất cả kèo bóng đá pháp phiên bằng cách bao gồmauto_explaininsession_preload_l Librieshoặcshared_preload_l LibriesinPostgreSql.conf. Sau đó, bạn có thể theo dõi kèo bóng đá pháp truy vấn chậm bất ngờ bất kể khi nào chúng xảy ra. Tất nhiên có một mức giá trên chi phí cho điều đó.

F.4.1. Tham số cấu hình

Có một số tham số cấu hình kiểm soát hành vi củaauto_explain. Lưu ý rằng hành vi mặc định là không làm gì, vì vậy bạn phải đặt ít nhấtauto_explain.log_min_durationNếu bạn muốn bất kỳ kết quả nào.

auto_explain.log_min_duration(11652_11661)

auto_explain.log_min_durationlà thời gian thực hiện tuyên bố tối thiểu, tính bằng mili giây, sẽ khiến kế hoạch của tuyên bố được ghi lại. Đặt cái kèo bóng đá pháp thành0Nhật ký tất cả kèo bóng đá pháp gói.-1(mặc định) vô hiệu hóa việc ghi nhật ký kèo bóng đá pháp kế hoạch. Ví dụ: nếu bạn đặt nó thành250msSau đó, tất cả kèo bóng đá pháp câu lệnh chạy 250ms trở lên sẽ được ghi lại. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_analyze(Boolean)

auto_explain.log_analyzeNguyên nhânGiải thích Phân tíchđầu ra, thay vì chỉ12675_1268412689_12822

Lưu ý

12909_13126auto_explain.log_timingcải thiện chi phí hiệu suất, với giá thu được ít thông tin hơn.

auto_explain.log_buffers(Boolean)

auto_explain.log_buffersKiểm soát xem số liệu thống kê sử dụng bộ đệm có được in khi kế hoạch kèo bóng đá pháp thi được ghi lại hay không; nó tương đương vớibộ đệmTùy chọnGiải thích. Tham số kèo bóng đá pháp không có hiệu lực trừ khiauto_explain.log_analyzeđược bật. Tham số này bị tắt theo mặc định. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_timing(Boolean)

auto_explain.log_timingKiểm soát xem thông tin thời gian mỗi nút được in khi kế hoạch kèo bóng đá pháp thi được ghi lại; nó tương đương vớiThời gianTùy chọnGiải thích. Chi phí của việc đọc liên tục đồng hồ hệ thống có thể làm chậm kèo bóng đá pháp truy vấn đáng kể trên một số hệ thống, do đó, có thể hữu ích khi đặt tham số này thành TẮT khi chỉ cần số lượng hàng thực tế và không cần thời gian chính xác. Tham số này không có hiệu lực trừ khiauto_explain.log_analyzeđược bật. Tham số này được bật theo mặc định. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_triggers(Boolean)

auto_explain.log_triggersgây ra thống kê thực thi kích hoạt được bao gồm khi một kế hoạch thực hiện được ghi lại. Tham số kèo bóng đá pháp không có hiệu lực trừ khiauto_explain.log_analyzeđược bật. Tham số này bị tắt theo mặc định. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_verbose(Boolean)

auto_explain.log_verboseKiểm soát xem kèo bóng đá pháp chi tiết dài dòng có được in khi kế hoạch thực thi được ghi lại hay không; nó tương đương vớiVerboseTùy chọnGiải thích. Tham số này bị tắt theo mặc định. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_sinstall(Boolean)

auto_explain.log_sinstall16333_16640

auto_explain.log_format(enum)

auto_explain.log_formatChọnGiải thíchĐịnh dạng đầu ra sẽ được sử dụng. kèo bóng đá pháp giá trị được phép làText, XML, jsonYAML. Mặc định là văn bản. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_level(enum)

auto_explain.log_levelChọn mức nhật ký tại đó Auto_Explain sẽ đăng nhập gói truy vấn. Giá trị hợp lệ làDEBUG5, DEBUG4, Debug3, Debug2, DEBUG1, INFO, Thông báo, cảnh báolog. Mặc định làlog. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.log_nested_statements(Boolean)

auto_explain.log_nested_statementsgây ra kèo bóng đá pháp câu lệnh lồng nhau (kèo bóng đá pháp câu lệnh được thực thi bên trong một hàm) được xem xét để ghi nhật ký. Khi nó tắt, chỉ có kèo bóng đá pháp kế hoạch truy vấn cấp cao nhất được ghi lại. Tham số này bị tắt theo mặc định. Chỉ kèo bóng đá pháp siêu người dùng mới có thể thay đổi cài đặt này.

auto_explain.sample_rate(Real)

auto_explain.sample_rate18944_19188

Trong cách sử dụng thông thường, kèo bóng đá pháp tham số này được đặt trongPostgreSql.conf, mặc dù kèo bóng đá pháp siêu người dùng có thể thay đổi chúng khi đang bay trong kèo bóng đá pháp phiên riêng của họ. Cách sử dụng điển hình có thể là:

# postgresql.conf
session_preload_l Librars = 'auto_explain'

auto_explain.log_min_duration = '3S'

F.4.2. Ví dụ

19798_20042

Điều kèo bóng đá pháp có thể tạo ra đầu ra nhật ký như:

Log: Thời lượng: 3.651 Kế hoạch MS:
  Truy vấn văn bản: Chọn Đếm (*)
              Từ pg_class, pg_index
              Trong đó oid = indrelid và indisunique;
  Tổng hợp (chi phí = 16,79..16,80 hàng = 1 chiều rộng = 0) (thời gian kèo bóng đá pháp tế = 3.626..3.627 hàng = 1 vòng lặp = 1)
    - Tham gia băm (chi phí = 4.17..16,55 hàng = 92 chiều rộng = 0) (thời gian kèo bóng đá pháp tế = 3.349..3.594 hàng = 92 vòng lặp = 1)
          Hash Cond: (pg_class.oid = pg_index.indrelid)
          - SEQ SCAN trên pg_class (chi phí = 0,00..9,55 hàng = 255 chiều rộng = 4) (thời gian kèo bóng đá pháp tế = 0,016..0.140 hàng = 255 vòng = 1)
          - băm (chi phí = 3.02..3.02 hàng = 92 chiều rộng = 4) (thời gian kèo bóng đá pháp tế = 3.238..3.238 hàng = 92 vòng = 1)
                Xô: 1024 lô: 1 Bộ nhớ Sử dụng: 4kb
                - SEQ SCAN trên pg_index (chi phí = 0,00..3.02 hàng = 92 chiều rộng = 4) (thời gian kèo bóng đá pháp tế = 0,008..3.187 hàng = 92 vòng = 1)
                      Bộ lọc: Indisunique

F.4.3. Tác giả

Takahiro itagaki