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

Giải thích Điểm Đau Chi phí Kế hoạch

Đầu ngày hôm nay, tôi đã làm việc với một nhà phát triển về một truy vấn có hiệu suất kém. Truy vấn này rất lớn và phức tạp, và ban đầu nó trông giống như một nỗ lực khó khăn để tìm ra vấn đề hiệu suất nằm ở đâu. Với Kế hoạch giải thích, chúng tôi đôi khi có thể sử dụng chi phí để giúp thu hẹp điểm khó khăn về hiệu suất của một truy vấn lớn, phức tạp.

Nhìn vào Sơ đồ giải thích của truy vấn này, chúng ta có thể thấy chi phí tổng thể của nó là khá cao.

Khi xem xét chi tiết, chúng ta có thể thấy rằng quét bảng FULL (FTS) trên bảng DETAIL_RECORD có chi phí cao là 51018. Hãy chú ý cách chi phí cao của FTS truyền lên kế hoạch. Tất cả các hoạt động trên FTS này đều có chi phí cao vì chi phí truy cập bảng đơn này rất cao. Truy cập bảng CIMS_POLICIES_TO_PROCESS có chi phí tương đối thấp, nhưng hoạt động HASH JOIN nhận được chi phí cao chỉ vì chi phí cao để truy cập vào bảng DETAIL_RECORD.

Chi phí tổng thể chỉ cao hơn một chút so với chi phí để truy cập bảng này. Rõ ràng là FTS trên bảng này là yếu tố đóng góp lớn nhất vào điểm mấu chốt của truy vấn này đang được phân tích.

Bằng cách xem xét chi phí Kế hoạch giải thích theo cách này, chúng tôi có thể nhanh chóng tập trung vào một lĩnh vực của truy vấn rất phức tạp đang gây ra nhiều khó khăn về hiệu suất nhất. Nếu không có phân tích chi phí được thực hiện ở đây, việc xác định phần nào của truy vấn bên dưới đang gây ra vấn đề sẽ là rất nhiều công việc.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tính giá trị trung bình của một cột và sau đó đưa nó vào một truy vấn chọn trong oracle?

  2. Triển khai Trung tâm dữ liệu Cloudera CDP trên Cơ sở hạ tầng đám mây Oracle (OCI)

  3. Cách so sánh hai bảng theo từng cột trong oracle

  4. Oracle xóa các hàng khỏi nhiều bảng

  5. Cập nhật nhiều cột trong câu lệnh MERGE ORACLE