Here's my situation. I work for a county clerks office which is responsible for storing court and official records. My job is to allow internet access to these records via a search page. Right now I am running queries against a replicated database. This can be slow considering users may be running a query with multiple joins for last name Smith against a database with > 6 million records. I would like to have a large denormalized table containing just the information I need to display, with one or two related tables. The question is, what is the best method to do this? This is not normal business information like cost and sale information. It's information about cases and the parties involved, so there are no measures to create a fact table in analysis services. The information is also dynamic since cases go on for years and can be reopened so it isn't true historical data. I could recreate the table on a daily basis, but I know there has to be a better way.