I am currently developing an mvc application to read from an existing sql server database. The database is denormalized – and I was looking at modifying some tables to normalize it to a degree.
This led to a discussion with a fellow developer as the most preformant way to read the data, or if the structure should change or not. The data will be read via ado.net with a stored procedure. Question I have is, is it more performant to have numerous fields in a table (denormalized) OR have several tables with inner joins (normalized) to retrieve the data?
I should have mentioned, the actions on the tables will be 95% read, 5% write.
Your should use denormalized data for data analysis purposes, intensive reporting usage. For the mentioned purposes having a denormalized will contribute to improve performance.
Without having much knowledge about the application you are going to implement, for a ‘standard’ client-server application, where you are supposed to work with a DOM plenty of classes and read & write data constantly, I would go vote for normalizing the data and avoid as much as possible maintaining duplicated data. Try to simplify the design the of the tables so that they ‘feel comfortable’ with your domain model.
So, briefly, normalized more performant for intensive data read, denormalized more performant (and more comprehensive) for intensive read & write of domain object model classes.