In this chapter, we outline issues in interfacing with legacy systems, and how they can be replaced by other systems. The main contents of this chapter include all of the following: Performance tuning, performance benchmarks, standardization, E-commerce, legacy systems. | Chapter 23: Advanced Application Development Performance Tuning Performance Benchmarks Standardization E-Commerce Legacy Systems 1 Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan Performance Tuning Adjusting various parameters and design choices to improve system performance for a specific application. Tuning is best done by 1. 2. identifying bottlenecks, and eliminating them. Can tune a database system at 3 levels: Hardware -- ., add disks to speed up I/O, add memory to increase buffer hits, move to a faster processor. Database system parameters -- ., set buffer size to avoid paging of buffer, set checkpointing intervals to limit log size. System may have automatic tuning. Higher level database design, such as the schema, indices and transactions (more later) 2 Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan Bottlenecks Performance of most systems (at least before they are tuned) usually limited by performance of one or a few components: these are called bottlenecks . 80% of the code may take up 20% of time and 20% of code takes up 80% of time Worth spending most time on 20% of code that take 80% of time Bottlenecks may be in hardware (. disks are very busy, CPU is idle), or in software Removing one bottleneck often exposes another De-bottlenecking consists of repeatedly finding bottlenecks, and removing them This is a heuristic 3 Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan Identifying Bottlenecks Transactions request a sequence of services . CPU, Disk I/O, locks With concurrent transactions, transactions may have to wait for a requested service while other transactions are being served Can model database as a queueing system with a queue for each service transactions repeatedly do the following request a service, wait in queue for the service, and get serviced Bottlenecks in a .