nếu không có thông tin bổ sung, chúng tôi chỉ có thể giả định rằng một chỉ mục không được sử dụng với hàm to_number () được áp dụng cho cột. Như được hiển thị trong câu hỏi SO này , chuyển đổi kiểu có thể ngăn trình tối ưu hóa sử dụng chỉ mục.
Nói chung:
- khi bạn thêm một hàm vào một cột (i-e:
to_number(id)
) trình tối ưu hóa sẽ không thể sử dụng các chỉ mục thông thường trên cột đó, - nếu có thể, bạn nên sử dụng cột thô. Đối với exemple:thay vì
WHERE trunc(col) = DATE '2009-08-27'
bạn nên sử dụng:WHERE col >= DATE '2009-08-27' AND col < DATE '2009-08-28'
- nếu bạn thực sự phải áp dụng một hàm cho một cột, bạn có thể sử dụng danh mục dựa trên chức năng