Performance
Performance of the e-business system can be affected by the performance of all its main componentslthe Web server software, the Web server hardware, the network and its components, and the software operating environment (for example, the Java Virtual Machine and operating system).
It's best to use independent benchmarks when judging performance of these various components. SpecBench provides access to a number of industry-standard benchmarks, publishing the results obtained for each relevant party. Their benchmarks include CPU speeds, disk speeds, Web server software performance, server-side Java implementations, JVM implementations, and more. PC Magazine uses a product-independent benchmark in its reviews of performance of Web server software (for example, see http://www.zdnet.com/pcmag/stories/reviews/0,6755,2551188,00.html). Interestingly, they award the highest scorecard to Windows 2000 Advanced Server with IIS when it's compared to other operating system/Web server combinations in terms of availability, security, administration/management, development, and performance.
Other benchmarks that supposedly report on Web server performancelparticularly those benchmarks provided by the vendorlcan easily be misread (see http://webcompare.internet.com/bench.html for details).
Databases and middleware are probably the most common source of performance problems in non-static Web applications, although bad coding practices also often contribute.
Just as Web server vendors will always publish benchmarks that favor their own products, database vendors will claim that their product outperforms all others. Many of the main database products (Oracle, Microsoft SQL Server, Sybase) are actually very close to one another in some areas of performance, but each has performance benefits over the others in some areas. The benchmarks used to monitor performance by the vendors are always cleverly designed to establish the superiority of their own product.
The factors that best determine the performance of a database are more closely linked to knowledge of that particular database and its idiosyncrasies, good design of tables (normalization/denormalization, etc.), good coding practices, and good maintenance and performance-tuning techniques than to the underlying product itself.
Factors that determine performance of the e-business application in relation to data retrieval include the following:
-
Denormalization of data so that accessing associative data doesn't involve multitable joins
-
Effective use of indexes
-
Understanding when to use stored procedures, prepared statements, and server-side cursors as opposed to straight SQL statements
-
Effective use of database tools such as query-plan generators, index rebuilders, and so on
-
Understanding how to structure the filesystem on which the database resides (for example, putting the transaction log on a different disk from the live database)
-
Good use of transactions (both within the database and within the middleware or database client software)
-
Choice of synchronous versus asynchronous calls to the database
-
Consistent coding practices (ensuring that database objects are closed down or destroyed at appropriate points so that database connections are not held open for longer than necessary)
Effective choice (and use) of middleware can also affect performance. The ODBC, OLE-DB, JDBC driver, or database-specific native middleware software can have a drastic effect on performance, and the extent to which it's used correctly and understood well can also affect performance.