The query is likely to timeout with the defaults, but it depends on your database CPU, memory and network speed. If you really need that much data, you can increase the transaction timeout to make it high enough to perform the query.
What are you doing with 20 million rows? Surely you aren't displaying them all to the user.
now in our company, the information system is use powerbuilder 5.0 build,it's too old, therefore, we are ready to build a B/S system, but we're worry the data is very big, because now in our C/S system ,every query will return 20 to 20,000,000 rows, every time is 2 seconds to 30 minutes.
dear Jeanne Boyarsky: I come from China. In China, B/S means Browser/Server, C/S means Client/Server. I sure you are not a Chinese, but you are a good man.