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

Oracle 11g - Làm thế nào để tối ưu hóa lựa chọn chèn song song chậm?

Cải thiện số liệu thống kê. Số hàng ước tính là 1, nhưng số hàng thực tế là hơn 7 triệu và đang tiếp tục tăng. Điều này khiến kế hoạch thực thi sử dụng vòng lặp lồng nhau thay vì tham gia băm. Vòng lặp lồng nhau hoạt động tốt hơn đối với lượng dữ liệu nhỏ và phép nối băm hoạt động tốt hơn đối với lượng dữ liệu lớn. Việc khắc phục điều đó có thể dễ dàng bằng cách đảm bảo các bảng liên quan có số liệu thống kê hiện tại, chính xác. Điều này thường có thể được thực hiện bằng cách thu thập thống kê với cài đặt mặc định, ví dụ:exec dbms_stats.gather_table_stats('SIRS_UATC1', 'TBL_RECON_PM'); .

Nếu điều đó không cải thiện ước tính số lượng, hãy thử sử dụng gợi ý lấy mẫu động, chẳng hạn như /*+ dynamic_sampling(5) */ . Đối với một truy vấn kéo dài như vậy, bạn nên dành thêm một chút thời gian cho dữ liệu lấy mẫu trước nếu nó dẫn đến một kế hoạch tốt hơn.

Sử dụng song song cấp câu lệnh thay vì song song cấp đối tượng. Đây có lẽ là lỗi phổ biến nhất với SQL song song. Nếu bạn sử dụng chế độ song song cấp đối tượng, gợi ý phải tham chiếu đến bí danh của đối tượng. Vì 11gR2 nên không cần phải lo lắng về việc chỉ định các đối tượng. Câu lệnh này chỉ cần một gợi ý duy nhất:INSERT /*+ PARALLEL(16) APPEND */ ... . Lưu ý rằng NOLOGGING không phải là một gợi ý thực sự.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thay đổi cột đổi tên bảng trong cơ sở dữ liệu oracle

  2. Hàm NULLIF () của Oracle

  3. vấn đề trong việc tìm kiếm danh sách các tệp trong thư mục

  4. Phương pháp thu thập:Thủ tục Cắt trong Cơ sở dữ liệu Oracle

  5. Truy vấn EF tới Oracle ném ORA-12704:bộ ký tự không khớp