Database Optimization
As discussed in the Scalability section, the database performance is paramount to maintaining stable performance of the entire system. Because most of the application's business logic is contained in the configurable business rules, the final database optimization cannot be performed until the configuration step has been completed. Additionally, the performance of the database indexes may need to be fine-tuned with the actual customer's data. This also can be done only after the configuration is finished.
Out of the box, the OIPA database comes with indexes built and optimized for SQL queries that are independent of the configuration. The transactions and business rules configured to implement a customer's business requirements usually contain a significant number of SQL queries as well. Also, the configuration, for example, for search screens, may change SQL queries issued from the application code.
The customer-specific and configuration-dependent queries need to be analyzed to ensure they are efficient, executed quickly and does not retrieve data that are not used. A new set of database indexes may be needed to provide the best possible performance for the customer-specific queries.
The final step of the database optimization should be performed with the actual business data during the performance and load testing of the configured OIPA-based solution.