Postgres giải thích chi phí

Postgres Giai Thich Chi Phi



Postgres là một hệ thống cơ sở dữ liệu quan hệ nguồn mở mạnh mẽ và được sử dụng rộng rãi với danh tiếng mạnh mẽ về tính mạnh mẽ, chức năng và hiệu suất của nó.

Một trong những công cụ giúp Postgres mạnh về hiệu năng là lệnh EXPLAIN của nó cung cấp chi tiết về kế hoạch thực hiện của một truy vấn SQL.

Lệnh GIẢI THÍCH là gì?

Lệnh EXPLAIN hiển thị kế hoạch thực hiện mà công cụ lập kế hoạch PostgreSQL tạo ra cho một câu lệnh SQL đã cho.







Điều này bao gồm thông tin về chi phí ước tính để thực hiện từng bước truy vấn. Bằng cách kiểm tra các chi phí này, chúng tôi có thể hiểu tại sao truy vấn chạy chậm và cách tối ưu hóa truy vấn đó.



PostgreSQL giải thích chi phí

Chúng tôi chủ yếu sử dụng lệnh EXPLAIN để lấy thông tin về một truy vấn nhất định. Lệnh xuất ra một số thông tin về truy vấn.



Lấy ví dụ truy vấn được hiển thị trong phần sau:





CHỌN f.title, c.name
TỪ phim f
THAM GIA film_category fc BẬT f.film_id = fc.film_id
THAM GIA danh mục c BẬT fc.category_id = c.category_id;

Nếu chúng ta chạy lệnh giải thích trên phép nối đơn giản trước đó:

GIẢI THÍCH CHỌN f.title, c.name
TỪ phim f
THAM GIA film_category fc BẬT f.film_id = fc.film_id
THAM GIA danh mục c BẬT fc.category_id = c.category_id;

Chúng ta sẽ nhận được đầu ra như trong hình sau:



Bạn có thể nhận thấy rằng đối với mỗi bước truy vấn, PostgreSQL trả về chi phí ước tính của truy vấn đó.

  1. startup_cost – Chi phí này hiển thị chi phí ước tính để khởi tạo hoạt động trước khi có thể bắt đầu xuất các hàng.
  2. total_cost – Tổng chi phí để truy xuất tất cả các hàng.
  3. Hàng – Nó xác định số hàng ước tính được truy vấn trả về.
  4. Chiều rộng – Điều này xác định số byte trung bình của tất cả các hàng được trả về bởi hoạt động.

Chi phí truy vấn trong PostgreSQL được biểu thị bằng các đơn vị tùy ý được xác định bởi các tham số chi phí được đặt trong cấu hình máy chủ.

Chìa khóa của các tham số này là seq_page_cost đặt chi phí tìm nạp trang đĩa không có trong bộ đệm.

Nếu bạn đang sử dụng pgAdmin, bạn có thể sử dụng tính năng “phân tích giải thích” để có được sơ đồ dễ đọc và được trình bày tốt hơn cho lệnh giải thích. Ví dụ:

Sau đó, bạn có thể nhấp vào từng bước để xem số liệu thống kê và chi phí ước tính.

Tối ưu hóa truy vấn dựa trên chi phí

Khi tối ưu hóa các truy vấn của bạn, điều cần thiết là phải hiểu rằng chi phí thấp hơn thường có nghĩa là thực thi nhanh hơn. Do đó, bạn có thể sửa đổi các truy vấn của mình với chi phí thấp hơn.
Dưới đây là một số yếu tố cần xem xét:

Sử dụng bảng Indexes – Các chỉ mục giảm đáng kể chi phí của các truy vấn dựa trên tìm kiếm bằng cách duy trì cấu trúc dữ liệu cho phép tra cứu nhanh hơn.

Sử dụng Hàm và Toán tử một cách khôn ngoan – Việc ước tính chi phí cho các chức năng và người vận hành không phải lúc nào cũng chính xác, vì chi phí thực tế có thể phụ thuộc nhiều vào dữ liệu cụ thể. Do đó, hãy hạn chế sử dụng các hàm và toán tử phức tạp ở mức tối thiểu.

Phần kết luận

Chúng tôi đã khám phá khái niệm về chi phí trong lệnh ANALYZE của PostgreSQL. Chúng tôi đã thảo luận ý nghĩa của đầu ra lệnh và cách sử dụng đầu ra chi phí để phân tích cách hiệu quả nhất để chạy một truy vấn nhất định.