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

Truy vấn Postgres chạy chậm

Nguyên nhân gây ra sự chậm chạp là do ước tính số lượng hàng không hợp lệ khiến PostgreSQL chọn một phép nối vòng lặp lồng nhau. Hầu như tất cả thời gian của bạn đều dành cho việc quét chỉ mục trên hfj_res_link , được lặp lại 1113 lần.

Nỗ lực đầu tiên của tôi là ANALYZE hfj_spidx_date và xem liệu điều đó có giúp ích gì không. Nếu có, hãy đảm bảo rằng tự động phân tích xử lý bảng đó thường xuyên hơn.

Nỗ lực tiếp theo sẽ là

SET default_statistics_target = 1000;

rồi đến ANALYZE như trên. Nếu điều đó hữu ích, hãy sử dụng ALTER TABLE để tăng STATISTICS trên hash_identitysp_value_high cột.

Nếu điều đó cũng không giúp được gì và bạn có phiên bản gần đây của PostgreSQL, bạn có thể thử thống kê mở rộng :

CREATE STATISTICS myparamsda2_stats (dependencies)
   ON hash_identity, sp_value_high FROM hfj_spidx_date;

Sau đó, ANALYZE bảng một lần nữa và xem điều đó có hữu ích không.

Nếu tất cả những điều đó không hữu ích và bạn không thể nhận được ước tính chính xác, bạn phải thử một góc độ khác:

CREATE INDEX ON hfj_res_link (target_resource_id, src_resource_id);

Điều đó sẽ tăng tốc độ quét chỉ mục đáng kể và cung cấp cho bạn thời gian phản hồi tốt.

Cuối cùng, nếu không điều nào ở trên có bất kỳ tác dụng nào, bạn có thể sử dụng biện pháp cruse về việc không cho phép các phép nối vòng lặp lồng nhau cho truy vấn này:

BEGIN;
SET LOCAL enable_nestloop = off;
SELECT /* your query goes here */;
COMMIT;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đối phó với 'org.postgresql.util.PSQLException:Không có giá trị nào được chỉ định cho tham số 1'?

  2. Truy vấn Postgres chậm một cách đáng kinh ngạc bằng cách sử dụng WHERE trên nhiều hàng liền kề

  3. Khóa ngoại PostgreSQL không tồn tại, vấn đề kế thừa?

  4. Lỗi cú pháp ở cuối đầu vào trong PostgreSQL

  5. Thư viện số học được mã hóa đơn giản (SEAL) và con dấu ::Biến văn bản mã