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

Hiệu suất PostgreSQL - Chức năng CHỌN và Đã lưu trữ

Người lập kế hoạch gặp sự cố với truy vấn của bạn vì nó không thể đánh giá thời gian thực thi của hàm. Trong trường hợp này, người lập kế hoạch nhận được chi phí thực thi ước tính của hàm, có thể được xác định trong create function... hoặc alter function... . Tuy nhiên, nếu bạn thử truy vấn này:

explain analyse select * from test(10);

bạn sẽ thấy thời gian thực hiện thực tế hơn nhiều.

So sánh:

test=# explain analyse select test(1000);
                                        QUERY PLAN
------------------------------------------------------------------------------------------
 Result  (cost=0.00..5.25 rows=1000 width=0) (actual time=0.830..1.220 rows=1000 loops=1)
 Planning time: 0.038 ms
 Execution time: 1.250 ms
(3 rows)

so với:

test=# explain analyse select * from test(1000);
                                                   QUERY PLAN
----------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..37.42 rows=1000 width=4) (actual time=0.006..0.124 rows=1000 loops=1)
   ->  Seq Scan on test_table  (cost=0.00..2560.28 rows=68428 width=4) (actual time=0.005..0.102 rows=1000 loops=1)
 Planning time: 0.130 ms
 Execution time: 0.144 ms
(4 rows)


test=# explain analyse select * from test_table limit 1000;
                                                    QUERY PLAN
------------------------------------------------------------------------------------------------------------------
 Limit  (cost=0.00..37.42 rows=1000 width=269) (actual time=0.009..0.118 rows=1000 loops=1)
   ->  Seq Scan on test_table  (cost=0.00..2560.28 rows=68428 width=269) (actual time=0.008..0.097 rows=1000 loops=1)
 Planning time: 0.076 ms
 Execution time: 0.151 ms
(4 rows)

Lưu ý sự giống nhau của hai kế hoạch cuối cùng. Các hàm bảng (các hàm trả về tập hợp các hàng hoặc bảng như trong trường hợp này) phải được gọi trong FROM mệnh đề. Trong những điều kiện nhất định, chúng có thể được nội tuyến.

Đọc thêm: Nội tuyến của các hàm SQL .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi quên mật khẩu tôi đã nhập trong khi cài đặt postgres

  2. Tại sao truy vấn của tôi liên quan đến phép chia và COUNT luôn cho kết quả là 1?

  3. Cách hoạt động của to_char () trong PostgreSQL

  4. Làm cách nào để đặt dấu dữ liệu giá trị mặc định của Postgresql như 'YYYYMM'?

  5. Tìm các giá trị trùng lặp trên cột mảng