The tables contain stock symbol data where each row has data for a specific date and time. So tables is for: Each month. For example, symbol Microsoft(MSFT). For year 2010 and month January which is: 1
MSFT20101
This saves 2 colums of data in the table. Year and Month column. Make queries faster by knowing directly in what Year and Month table I need to extract information
You will save some space compared to a single table where you you store the data in a traditional B-Tree format, since symbol and month is not repeated. But in execution time? Not much, since the index permits you to efficiently access the rows for that month.
If you store the data in columnstore format, there is not much space spend on the month and symbol because of the format. But access may be slower.
As for questions "how much extra time" etc, I only have one answer: you need to benchmark. There are no simple answers here.
The compression models I listed here, permits you to query the data in compressed format. If all you are going to do is to extract the values to a text file, I don't see the need to uncompress at all.
But there are of course more extreme versions. Rather than storing the information row-by-row, take all the stock data for MSFT Jan 2010 and stick into to your own string and store that string compressed. Or in your own binary format. Maybe even applying your own compression...
You could spend just as much time on finding the best compression model as you spend on your random forest. If not more.