Tôi rất mới để lập chỉ mục và giải thích kế hoạch, vì vậy hãy chịu với tôi! Tôi đang cố điều chỉnh truy vấn nhưng tôi gặp sự cố.Oracle không sử dụng chỉ mục khi tham gia
Tôi có hai bảng:
SKU
------
SKUIDX (Unique index)
CLRIDX (Index)
..
..
IMPCOST_CLR
-----------
ICCIDX (Unique index)
CLRIDX (Index)
...
..
Khi tôi làm một select * from SKU where clridx = 122
, tôi có thể thấy rằng nó đang sử dụng các chỉ số trong kế hoạch giải thích (nó nói BẢNG TIẾP CẬN .. INDEX, nó nói tên chỉ số dưới OBJECT_NAME và các tùy chọn là RANGE SCAN).
Bây giờ, khi tôi cố gắng tham gia trên cùng một trường, nó không xuất hiện để sử dụng chỉ mục (nó nói TABLE ACCESS .. HASH JOIN và dưới tùy chọn, nó nói ĐẦY ĐỦ).
Tôi nên tìm cách thử và xem lý do tại sao nó không sử dụng chỉ mục? Xin lỗi, tôi không chắc chắn lệnh nào sẽ nhập để hiển thị thông tin này, vì vậy, vui lòng cho tôi biết nếu bạn cần thêm thông tin.
Ví dụ:
1 truy vấn:
SELECT
*
FROM
AP21.SKU
WHERE
CLRIDX = 100
2 truy vấn:
SELECT
*
FROM
AP21.IMPCOST_CLR
WHERE
CLRIDX = 100
3rd truy vấn:
SELECT
*
FROM
AP21.SKU
INNER JOIN
AP21.IMPCOST_CLR ON
IMPCOST_CLR.CLRIDX = SKU.CLRIDX
gì được truy vấn mà bạn sử dụng khi tham gia? – APC
Xin chào, tôi đã xem bản chỉnh sửa của tôi. Các truy vấn im cố gắng để điều chỉnh là hàng trăm lâu hơn nữa, nhưng phá vỡ nó xuống và dùng nó từng bước! – Lock
Bạn giải quyết vấn đề quét toàn bộ của mình như thế nào? – Salman