Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 Database Design and Application Architecture
 Normalization vs Performance

Author  Topic 

Jaypoc
Yak Posting Veteran

58 Posts

Posted - 2008-09-03 : 17:39:50
This is kind of a general question about normalization, and perhaps someone could answer, or point me to a good reference on the subject.

I'm curious what kind of impact normalization has on performance. Can you over-normalize causing SQL to take longer to cross-reference data from multiple tables?

I work on websites that are accessed by an internal department of about 300 users at a time, some of the sites being hit several times a minute by each user. A decent load I would imagine.

I'm curious if I should be breaking the databases down so every element has it's own table, or if it would be more efficient to have data duplicate itself across multiple tables on inserting. (since few people insert data, but everyone access pages that select data)

Some queries I run have to pull data from 3 or more tables (for instance, I pull usernames/passwords from one table, position titles from another, payroll data from another, and other information from various other tables for display on a summary page... At what point is this no longer efficient and should I consider building a single table containing all this information (updated periodically via manual or scheduled update)?


blindman
Master Smack Fu Yak Hacker

2365 Posts

Posted - 2008-09-03 : 18:27:05
quote:
Originally posted by Jaypoc

Some queries I run have to pull data from 3 or more tables (for instance, I pull usernames/passwords from one table, position titles from another, payroll data from another, and other information from various other tables for display on a summary page... At what point is this no longer efficient and should I consider building a single table containing all this information (updated periodically via manual or scheduled update)?

~6.42

Boycotted Beijing Olympics 2008
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2008-09-03 : 18:35:46
Just build your database with a normalized schema.

One of the worst things you can do is to demormalize a transactional database, expecially when you have no reason to.


People who say they denormalized a database for performance usually had no idea how to create a normalized database in the first place, and use denormalization to explain away their bad design.



CODO ERGO SUM
Go to Top of Page

tkizer
Almighty SQL Goddess

38200 Posts

Posted - 2008-09-03 : 18:41:45
quote:
Originally posted by Jaypoc


I work on websites that are accessed by an internal department of about 300 users at a time, some of the sites being hit several times a minute by each user. A decent load I would imagine.




This is small potatoes. Imagine administering a system with thousands of transactions per second. No denormalization necessary to support it. At some point though, partitioning needs to be considered.

Tara Kizer
Microsoft MVP for Windows Server System - SQL Server
http://weblogs.sqlteam.com/tarad/

Subscribe to my blog
Go to Top of Page

jezemine
Master Smack Fu Yak Hacker

2886 Posts

Posted - 2008-09-03 : 18:59:59
one fact in one place please. :)


elsasoft.org
Go to Top of Page
   

- Advertisement -