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

Trình tối ưu hóa sql cho Bảng Db Lớn

Bạn có thể nên bắt đầu với GIẢI THÍCH KẾ HOẠCH .

Sau đó, chỉnh sửa câu hỏi của bạn và đăng câu lệnh SQL và kết quả của KẾ HOẠCH GIẢI THÍCH.

Sau đó. . .

Tôi sẽ không giúp được gì nhiều cho bạn về câu hỏi đó. 269 ​​dòng, ít nhất 29 CHỌN, truy vấn song song, cơ sở dữ liệu từ xa, liên kết ngoài (kiểu cũ), v.v.

Lời khuyên tốt nhất tôi có thể cho bạn là

  • nhận thêm thông tin từ KẾ HOẠCH GIẢI THÍCH và
  • đơn giản hóa vấn đề.

bảng kế hoạch có nhiều cột hơn thường được đăng. Các cột COST, CARDINALITY, BYTES và TIME có thể hữu ích trong việc ưu tiên nỗ lực điều chỉnh của bạn.

Bạn có 10 lần quét bảng đầy đủ trong truy vấn đó. ("BẢNG TRUY CẬP ĐẦY ĐỦ" trong kế hoạch truy vấn.) Đó thường là một dấu hiệu xấu; quét toàn bảng thường mất một thời gian tương đối lâu để chạy. Nó không luôn luôn một dấu hiệu xấu. Quét toàn bộ một bảng nhỏ có thể nhanh hơn quét chỉ mục.

Bắt đầu bằng cách nhận kết quả EXPLAIN PLAN cho mỗi câu lệnh trong số 29 câu lệnh SELECT trong truy vấn của bạn. Nếu bất kỳ người nào trong số họ hiển thị bản quét toàn bộ, bạn có thể cải thiện hiệu suất của họ bằng chỉ mục phù hợp . (Oracle hỗ trợ nhiều loại chỉ mục khác nhau. Đừng bỏ qua cơ hội cho các chỉ mục nhiều cột.) Trong mọi trường hợp, đầu ra GIẢI THÍCH KẾ HOẠCH sẽ giúp bạn xác định chậm nhất trong số 29 CHỌN.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn để tìm Nhân viên đã nghỉ nhiều hơn số ngày nghỉ đủ điều kiện liên quan đến Vai trò công việc của họ

  2. Tìm kiếm Oracle danh sách các từ trong chuỗi và chạy lại các từ hiện có

  3. Cách tạo con trỏ bên trong thân thủ tục trong plsql

  4. Chế độ xem vật chất hóa so với Bảng:Ưu điểm là gì?

  5. Oracle:Nhận một truy vấn để luôn trả về chính xác một hàng, ngay cả khi không tìm thấy dữ liệu nào