Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to know if i have a web with a huge Database and throw expensive (in time)reports , the best way to do this is with one database for the web and a replicated one for reports, or only one for both, i'm worried that users can throw reports for 5 or more years because they need that information and the web crashes because of this.

share|improve this question
up vote 1 down vote accepted

Neither nore - time to make a second database that is optimized for reporting. This is standard operation procedure and is called a "Data Warehouse".

This should possibly also work on separate hardware, but this is "arguable" as long as the server is good enough.

Transactional databases (OLTP - highly normalized) and reporting databases (OLAP - star schemata, different design characteristics) do not mix well for larger loads.

share|improve this answer
thank you for your answer is very usfull – developer May 20 '10 at 6:49

replicate/copy or do something!

Yes! because of the nature of OLTP, locking and resources you do not want to be running report queries against a production live copy of your db.

Setup replication to another server, or something to get copies of your prod data onto another box. The large scale measured & proper approach is DW's, ETL's star schema ect.

For a small system its baby steps though.

share|improve this answer
thank you for your answer is very usfull – developer May 20 '10 at 7:16

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.