F.4. 토토 베이

The토토 베이Mô -đun cung cấp một phương tiện để ghi lại các kế hoạch thực thi của các 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 các truy vấn không được tối ưu hóa trong các ứng dụng lớn.

Mô-đun không cung cấp các 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 '토토 베이';

(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ả các phiên bằng cách bao gồm토토 베이insession_preload_l Librieshoặcshared_preload_l LibriesinPostgreSql.conf. Sau đó, bạn có thể theo dõi các 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ủa토토 베이. 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ất토토 베이.log_min_durationNếu bạn muốn bất kỳ kết quả nào.

토토 베이.log_min_duration(Số nguyên)

토토 베이.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 này thành0ghi lại tất cả các gói.-1(mặc định) vô hiệu hóa việc ghi nhật ký các kế hoạch. Ví dụ: nếu bạn đặt nó thành250msSau đó, tất cả các câu lệnh chạy 250ms hoặc lâu hơn sẽ được ghi lại. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

토토 베이.log_analyze(Boolean)

토토 베이.log_analyzeNguyên nhânGiải thích Phân tíchđầu ra, thay vì chỉGiải thíchđầu ra, sẽ được in khi kế hoạch thực thi được ghi lại. Tham số này bị tắt theo mặc định. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

Lưu ý

Khi tham số này được bật, thời gian lên kế hoạch cho tất cả các câu lệnh được thực thi, cho dù chúng có chạy đủ lâu để thực sự được ghi lại hay không. Điều này có thể có tác động cực kỳ tiêu cực đến hiệu suất. Tắt토토 베이.log_timingcải thiện chi phí hiệu suất, với giá thu được ít thông tin hơn.

토토 베이.log_buffers(Boolean)

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

토토 베이.log_wal(Boolean)

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

토토 베이.log_timing(Boolean)

토토 베이.log_timingKiểm soát xem thông tin thời gian mỗi nút được in khi kế hoạch thực thi được ghi lại; nó tương đương vớiTimingTù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 các 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ừ khi토토 베이.log_analyzeđược bật. Tham số này được bật theo mặc định. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

토토 베이.log_triggers(Boolean)

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

토토 베이.log_verbose(Boolean)

토토 베이.log_verboseKiểm soát xem các 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ọn củaGiải thích. Tham số này bị tắt theo mặc định. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

토토 베이.log_sinstall(Boolean)

토토 베이.log_sinstallKiểm soát xem thông tin về các tùy chọn cấu hình sửa đổi được in khi kế hoạch thực thi được ghi lại. Chỉ các tùy chọn ảnh hưởng đến lập kế hoạch truy vấn với giá trị khác với giá trị mặc định tích hợp được bao gồm trong đầu ra. Tham số này bị tắt theo mặc định. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

토토 베이.log_format(enum)

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

토토 베이.log_level(enum)

토토 베이.log_levelChọn mức nhật ký tại đó 토토 베이 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ỉ các siêu người dùng mới có thể thay đổi cài đặt này.

토토 베이.log_nested_statements(Boolean)

토토 베이.log_nested_statementsgây ra các câu lệnh lồng nhau (các 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ó các 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ỉ các siêu người dùng mới có thể thay đổi cài đặt này.

토토 베이.sample_rate(Real)

토토 베이.sample_ratekhiến 토토 베이 chỉ giải thích một phần của các câu trong mỗi phiên. Mặc định là 1, có nghĩa là giải thích tất cả các truy vấn. Trong trường hợp các tuyên bố lồng nhau, tất cả sẽ được giải thích hoặc không có. Chỉ các siêu người dùng mới có thể thay đổi cài đặt này.

Trong cách sử dụng thông thường, các tham số này được đặt trongPostgreSql.conf, mặc dù các siêu người dùng có thể thay đổi chúng khi đang bay trong các 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 = '토토 베이'

토토 베이.log_min_duration = '3S'

F.4.2. Ví dụ

postgres =# load '토토 베이';
postgres =# đặt 토토 베이.log_min_duration = 0;
postgres =# set 토토 베이.log_analyze = true;
Postgres =# Chọn đếm (*)
           Từ pg_class, pg_index
           Trong đó oid = indrelid và indisunique;

Điều này 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 thực 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 thực 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 thực 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 thực 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 thực tế = 0,008..3.187 hàng = 92 vòng = 1)
                      Bộ lọc: Indisunique

F.4.3. Tác giả

Takahiro itagaki

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợ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 liệu.