My parameters are stored on the database. They pull from stored procedures in the report that call the parameter table I described to you. I have a stored procedure that nightly complies all the parameter information into the parameter table. This way, the report is NOT asking for information from the database tables that contain ALL the information, nor is the report calling on a datamart. Just the information in the parameter table that has been pared down to ParameterName, ParameterLabel, ParameterValue, MasterParameterName, and MasterParameterValue.
The nightly stored procedure that pulls the information takes about 10 minutes to run or more depending on the UNIONs and other information being feed to the parameter table. It is a LONG stored procedure...but having my reporting set up this way has drastically reduced the delay times.