PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Có thể lấy lịch sử các truy vấn được thực hiện trong postgres không

Không có lịch sử trong chính cơ sở dữ liệu, nếu bạn đang sử dụng psql, bạn có thể sử dụng "\ s" để xem lịch sử lệnh của mình ở đó.

Bạn có thể nhận các truy vấn trong tương lai hoặc các loại thao tác khác vào tệp nhật ký bằng cách đặt log_statement trong tệp postgresql.conf. Thay vào đó, điều bạn có thể muốn là log_min_duration_statement , nếu bạn đặt nó thành 0 sẽ ghi lại tất cả các truy vấn và thời lượng của chúng trong nhật ký. Điều đó có thể hữu ích khi ứng dụng của bạn hoạt động, nếu bạn đặt giá trị đó thành giá trị cao hơn, bạn sẽ chỉ thấy các truy vấn chạy dài có thể hữu ích cho việc tối ưu hóa (bạn có thể chạy GIẢI THÍCH PHÂN TÍCH các truy vấn bạn tìm thấy ở đó để tìm ra lý do tại sao chúng chậm).

Một điều hữu ích khác cần biết trong lĩnh vực này là nếu bạn chạy psql và nói với nó "\ timing", nó sẽ hiển thị mỗi câu lệnh sau đó mất bao lâu. Vì vậy, nếu bạn có một tệp sql trông giống như sau:

\timing
select 1;

Bạn có thể chạy nó với các cờ phù hợp và xem từng câu lệnh xen kẽ với thời gian mất bao lâu. Đây là cách thức và kết quả trông như thế nào:

$ psql -ef test.sql 
Timing is on.
select 1;
 ?column? 
----------
        1
(1 row)

Time: 1.196 ms

Điều này rất tiện lợi vì bạn không cần phải là siêu người dùng cơ sở dữ liệu để sử dụng nó, không giống như thay đổi tệp cấu hình và dễ sử dụng hơn nếu bạn đang phát triển mã mới và muốn thử nghiệm nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để cập nhật tất cả các cột bằng CHÈN ... BẬT MẶT ...?

  2. Heroku Postgres:Kết nối này đã bị đóng

  3. Tổng quan về PostgreSQL Query Caching &Load Balancing

  4. Làm cách nào để kế thừa các đặc quyền của một vai trò?

  5. PostgreSQL lưu trữ các tệp cấu hình / conf ở đâu?