To answer your second question, because the tables
contain the accounting records of a conglomerate of
companies and for some reason the accountants insist
that they be able to browse/search through at least the
previous two months' records (which amount to a
shitload of data).
I thought of displaying just 1000 records at a time
and generate/execute a new SQL query every time the
user moves to the next/previous 1000 items myself, but
I figured there may be a more elegant way to do it...