Yo, a priori lo que haría sería poner unas mnarcas de tiempo para detectar qué es lo que está tardando más.
No comentas cuantos artículos tienen las otras tablas.
Revisa que tienes definidos los índices para las búsquedas y que se están utilizando.
El tema del First/Last seguidos no es recomendable porque obligas a cargar todos los registros (aunque con 900 no debería ser problema).
Si puedes evitar los
loPartialKey en las búsquedas mejor.
Asegúrate del tiempo que están tardando los Locate.
Como alternativa al LOCATE lanza una SQL con TOP 1.
Si tienes controles visuales "linkados" inhabilitalos para ver si mejora.
NOTA: Sin tener más datos apuesto por que son los LOCATE.