ResultSet grande

Olá,

Tenho que descobrir se linhas que estão no banco de dados estão em arquivos. São cerca de 1 milhão de linhas nos arquivos e no bd.

O que estou fazendo eh o seguinte
Ordeno todos os arquivos.
Faco a query no bd e obtenho um resultset com 1 milhao de linhas
Obtenho 20.000 linhas desse resultset com o método next()
Comparo esses 20.000 linhas uma a uma com todos os arquivos utilizando Collections.binarySearch() se encontro gravo isso.
Gravo todos que não foram encontrados.
Fecho o resultset e a conexão

Tenho várias dúvidas:
1 - Esse resultset que obtenho de 1 milhão de linhas. Aonde ele está?
Supondo que esteja apenas no bd, qual o trabalho e os gastos que o bd tem para manter esse resultset? E se a query for ordenada?

2 - Sabem alguma maneira melhor de fazer isso?

É isso,
Pedro A. Vasconcellos