O “query” mostra quantas leituras de “visão consistente” (os famosos consistent gets) de dados foram feitas, aquela que possibilita o isolamento de transações. É o valor atual da linha, caso uma outra transação esteja nesse mesmo momento fazendo um um update na tal linha, por exemplo, mas não tenha executado o commit.
O current read implementa a forma do Oracle saber qual o valor “atual” da linha, para descobrir se alguém mexeu nela entre sua leitura em modo consistente (query) e a execução da sua operação de fato sobre o block de dados (update, insert, delete…).
Na prática seu objetivo ao escrever um SQL eficiente é reduzir o número de consistent gets. Os current vão ocorrer sempre que houver uma atualização em blocks, então são mais difíceis de evitar, exceto por selects for update mais amplos que o necessário.
O blog do Tom Kyte mostra em detalhes como funciona e ajudará você a entender melhor, pois não consigo explicar de forma tão clara quanto ele.
http://tkyte.blogspot.com/2005/08/somet … f-iii.html