Serkan,
I didn't
test it with millions of rows, only thousands, but I found that 100 was the optimal fetch-size when the query returns more than 100 rows.
If the query returns less than 100 rows, then setting the fetch size to exactly the number of rows returned gives the best performance (if I remember my test resukts correctly -- it's been a while).
Good Luck,
Avi.