Hi Liu,
Index creation is not a advisable solution.Please follow the existing indexes by adding Mandt field.
Try like this
SELECT MAX( mkpf~budat )
FROM mkpf
INNER JOIN mseg
ON mseg~mblnr = mkpf~mblnr AND mseg~mjahr = mkpf~mjahr
INTO posting_date
WHERE mseg~mandt = sy-mandt
AND mkpf~mandt = sy-mandt
AND mseg~werks = w_matl-batch_reservations-werks
AND mseg~charg = w_matl-batch_reservations-charg
AND mseg~bwart IN ('261', 'Z61').
Hope it will be helpful.
Regards,
Kannan