Làm thế nào tôi có thể thời gian truy vấn SQL bằng cách sử dụng psql?


Câu trả lời:


321

Chỉ cần bật thời gian bằng cách nhập:

\timing


1
Từ bash, tùy chọn "-c" psqlkhông cho phép cài đặt này. Bạn có thể làm điều này với một cái gì đó như: psql --o /dev/null <<EOF \timing select 1 EOF
3manuek

6
Hoặc làmpsql -c '\timing' -c 'select 1'
cdmckay


12

Thời gian \timingtrả về cũng bao gồm độ trễ mạng, nếu bạn đang kết nối với máy chủ từ xa.

Khi bạn không muốn điều đó và cũng không cần đầu ra truy vấn, hãy sử dụng tốt hơn EXPLAIN ANALYZE, nó đưa ra kế hoạch truy vấn với các ước tính của trình hoạch định cộng với thời gian thực hiện thực tế.

ví dụ, EXPLAIN ANALYZE SELECT foo from bar ;


1
... vấn đề duy nhất là bạn không nhận được đầu ra truy vấn bình thường.
dezso

2
Sử dụng explain analyzenăng suất gấp đôi khoảng gấp đôi những gì tôi thấy khi sử dụng \timing, điều này trái ngược với những gì tôi mong đợi dựa trên các nhận xét ở đây về độ trễ của mạng. Tôi nghi ngờ rằng có chi phí hoạt động bình thường analyzelàm tăng thêm thời gian truy vấn. Dựa trên các tài liệu, tôi nghĩ rằng EXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM barsẽ cung cấp cho bạn thông tin thời gian hữu ích hơn. Xem postgresql.org/docs/9.6/static/sql-explain.html để biết chi tiết.
larsks
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.