msgbartop
News, views, tips and tricks on Oracle and other fun stuff
msgbarbottom

links for 2006-06-30

Related articles:

Filed in Interesting Stuff on 30 Jun 06 | Tags:


Reader's Comments

  1. |

    I’m sorry, but I think Don Burleson’s list of worst practices is far from the truth.

    Normalization is not just for saving space and preventing duplicate data. It is a basic step that you MUST take to fully understand your data and your system requirements. It is essential for a flexible and easy to modify database. For instance, I have a database with physician names and addresses. I put the name and one address in a table. Now I am tasked to allow the entry of more than one address for a physician. Yes, I could add a second set of address fields, but what if we need to add a third address? What I should have done is normalize, and put the addresses in a separate table.

    Can normalization be overdone? Possibly, but at least take your data to 3rd normal form, and if you decide to denormalise from there, know WHY you are doing it, what you expect to gain, AND what you will lose. That said, I am highly in favor of giving developers denormalised VIEWs of your normalised TABLES, with INSTEAD OF triggers to do the proper updates behind the scenes. This makes sure that the joins are written well, and that updates are unlikely to deadlock.

    Which leads me to: Writing good SQL in your applications, plus updating statistics and having the right indexes is far more effective for database performance than tuning database initialization parameters. My experience tells me that, yes, improving an init.ora parameter can improve performance, but not orders of magnitude better performance. Tuning the SQL, and the database structures that support the SQL can give orders of magnitude better performance.

  2. |

    >>Can normalization be overdone? Possibly

    Interesting comment, my experience must be different than yours. Also, my list is for DBA’s, not developers. Did I miss any worst practices? I hung this page last year . . .

    Oracle materialized Views are a direct denormalization, a replication with update controls. I agree that you start at 3NF, but then you introduce redundancy to reduce tables joins and system overhead.

    Here is my favorite example, a performance killer that I see, over and over:

    http://www.dba-oracle.com/demo/design_performance.htm