A third more direct answer:
a) Yes, you'll index the table you query from before the query, not during the query.
In fact there is no such thing as indexing during a query, without some trickery like using a user defined function (udf) within the query. Plus Rushmore will sometimes create a temporay index to make a join or filter, but that's seldom, as creating an index always needs a full scan over the data indexed and you would need to get the time back by faster matching/in seaching within the temporarily built index. Anyway it's not something the database architect, administrator or programmer want to influence or do, when rushmore does so, it mainly indexes intermediate results.
Rushmore mainly makes use of preexisting indexes. Simply take a look in the help at what rushmore is and how it works and what indexes it makes use of and you'll know what and how to index for query optimisation.
Bye, Olaf.