Sử dụng:
AND oh.tran_date BETWEEN TRUNC(SYSDATE - 1) AND TRUNC(SYSDATE) - 1/86400
Tham khảo:TRUNC
Gọi một hàm trên tran_date
có nghĩa là trình tối ưu hóa sẽ không thể sử dụng một chỉ mục (giả sử một chỉ mục tồn tại) được liên kết với nó. Một số cơ sở dữ liệu, chẳng hạn như Oracle, hỗ trợ các chỉ mục dựa trên chức năng cho phép thực hiện các chức năng trên dữ liệu để giảm thiểu tác động trong những tình huống như vậy, nhưng IME DBA sẽ không cho phép những điều này. Và tôi đồng ý - chúng không thực sự cần thiết trong trường hợp này.