Con 100.000 registros no va a ir bien, ya que al no ser cliente/Servidor viajaran todos por la red aunque solamente tomes 10.
Yo crearía un índice por sucursal y lo resolvería por código:
Para mostrar un artículo en una sucursal, ordenar por sucursal + artículo, sino existe índice crearlo.
Busco sucursal artículo.
Código Delphi
[-]
cSucArt:=MITablaMICampo.Value;
While MiTablaMiCampo.Value = cSucArt do
begin
nProducto:= nProducto + MiTablaUnidades.Value;
MiTabla.Next
end;
***Si tienes una componentes visuales desátivalos***
MiTabla.DisableControls.
*****************************************
Un saludo.