Properly designing a database architecture can be challenging, especially since it must be architected to meet specific business objectives. Some databases are inherited or built over a period of time and do not perform as well as they should, resulting in a database that does not efficiently utilize hardware resources and increases maintenance costs. Your growth pattern should be the exact opposite – maximize hardware resources and minimize maintenance.
Most issues facing client databases are due to improper configurations, which lead to performance problems and unplanned outages. To make a database run efficiently, I prefer to take a top-down and a bottom-up approach:
- Top-down – thoroughly assessing the architecture and OS, DB, and Clusterware configurations.
- Bottom-up – looking at how the database is being used, and targeting the database objects to pin-point bottlenecks and waits caused by bad data model design or bad SQL statements.
Taking both approaches leads to a more holistic view of current and potential issues that could plague a database.