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ó.