Francisco,
como estas?
Te paso algunas ideas que se me ocurren sobre tus ultimas preguntas por su numero:
1) Seria conveniente traer desde la BD solo los registros necesarios. Traer la tabla completa puede generar lentitud del sistema. Sin duda esto repercutira con la performance de tu aplicación, mas si tienes en cuenta que con el paso del tiempo esta tabla podria crecer. Colocar select *, tambien no es conveniente a menos que sea estrictamente necesario, solo traer los campos que se requieran mencionandolos uno a uno en el select.
2) Crear indices cuando traes los registros puede repercutir en la performance de tu aplicacion. Revisar que tan necesario es hacerlo, no siempre es conveniente.
3) Si haces un formulario en donde el usuario se desplace registro por registro con los botones: primer registro/anterior registro/siguiente registro/ultimo registro, pues como sugerencia se me ocurre que el Cursor Adapter solo traiga un registro. Por cada vez que se mueva a un registro traer desde la tabla el que corresponda, sea siguiente, anterior, primero o último. De esta forma al recibir esta informacion desde la BD actualizas los controles del formulario.
Quizas lo comentado en el punto 3 te ayude para los puntos 1 y 2. Ya que no es necesario traer toda la tabla a memoria ni tampoco indexarla. Si el usuario quiere realizar una busqueda, entonces envias con un CA la busqueda a la BD y recibes la informacion para completar tu formulario. Esto hace que el trabajo de busqueda se ejecute en el servidor y no en el cliente, respetando el esquema que lleva justamente ese nombre "Cliente/Servidor".
Espero estos comentarios te sirvan para decidir como encarar tu dudas, quizas exista alguna manera aun mejor.
Saludos desde
Córdoba, Argentina
Tomás Cruz.