(sorry, forgot to copy the list)
The way you are using dlr's and matching is, usually is the correct way.
You should profile your application if the load gets too high. If it is a
database issue, maybe an index on dlr_url will help.
Alternativly you can use a MySQL trigger. See
This question raised too many times here..
Here are couple of ways to resolve what you need:
1. Set up trigger (as Rene already suggested) to update tables you need or
update records in sent_sms based on the information coming from the DLR
from your upstream SMSC operators.
2. Modify sent_sms