the better question is why you think you need a report with 600K or more records in it? who is going to use it? no-one can possibly manually review that many records accurately; they might be able to skip over it for trends or something, but it is too large for human review.
It's time to do a little business requirements gathering to address the underlying needs for the report instead.
I would strongly recommend changing the report to be multiple alternate reports, that identify the exceptions that people would look for in that 600/700K records instead;
So if people actually use that report to say, "hey this field is blank and it shouldn't be", then produce an alternate report for that; if someone else uses that report to see rows related in a certain way, create another report for that.
--help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!