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.