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

oracle - cùng một truy vấn nhưng kế hoạch khác nhau ở 11g và 12g

Kế hoạch thực thi do trình tối ưu hóa đã chọn có thể khác nhau rất nhiều ngay cả giữa hai môi trường của cùng một phiên bản, không chỉ 11g và 12c. Nó phụ thuộc vào nhiều yếu tố, nhưng chủ yếu là:

  • Số hàng trong bảng (chúng có giống nhau giữa các env không?)
  • Có những chỉ mục nào (cả hai db đều có chỉ mục giống hệt nhau?)
  • Có thống kê cho bảng và chỉ mục không và chúng cập nhật như thế nào? Nếu không cập nhật, vui lòng thu thập số liệu thống kê cho các bảng các chỉ mục.

Nếu bạn có thể đăng những chi tiết này, tôi có thể cung cấp một câu trả lời hữu ích hơn.

Ngoài ra, mã trông giống như được tạo tự động, nếu bạn có quyền sửa đổi chúng, dựa trên các chi tiết, chúng tôi có thể đề xuất truy vấn được viết lại và / hoặc gợi ý.

Nếu bạn không thể sửa đổi mã, bạn có thể buộc một kế hoạch bằng Quản lý kế hoạch SQL (SPM) - xuất từ ​​db nơi nó chạy nhanh hơn và nhập vào db khác.

CẬP NHẬT

Sử dụng phiên bản SQL đơn giản này để tạo kế hoạch:

SELECT * FROM DMProgDate_00001
 WHERE ProgressOID IN ( 
   SELECT OID FROM DMProgress_00001 
    WHERE Project = 'Moho'
      AND Phase = 'Procurement'
      AND Displine = 'Q340'
      AND ROWNUM <= 20
    ORDER BY actCode
  );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 12c cột IDENTITY

  2. Đang cố gắng cấu trúc lại truy vấn đệ quy trong Oracle CTE?

  3. tham số được phân tách bằng dấu phẩy trong thủ tục lưu trữ plsql

  4. Không thể tải tệp hoặc lắp ráp Oracle.DataAccess

  5. Oracle : Tại sao Oracle tạo vectơ thay đổi làm lại mô tả sự thay đổi đối với khối hoàn tác khi người dùng đưa ra lệnh thay đổi một mục dữ liệu