WebFOCUS reporting, and Business Intelligence in general, typically involves large record sets and many levels of aggregation, sorting, and joins. Subsequently, these areas of WebFOCUS have been optimized to use the minimum amount of CPU per retrieved record so they can scale up to millions of records. In addition, on MVS, the following have all been implemented in IBM mainframe Assembler to insure the shortest code path: database I/O and navigation, screening, expression evaluation, sorting and summing, and conversion to printable formats.
WebFOCUS Maintain, and transaction systems in general, typically involve small record sets, data validation, navigation logic, and transaction control. Maintain has been designed for applications composed of short transactions using small sets of data. The optimizations developed have been directed to cause many small transactions to run quickly, not to cause a single transaction that uses thousands of records to run quickly. In addition, Maintain has not been optimized to any particular platform. It is written entirely in portable C using an object oriented/layered approach.
When the use of WebFOCUS Maintain (or any transaction tool kit) involves transactions and database activity beyond small records sets, particular care must be made in selecting the best approach to solving the presented business problem. For example, retrieving large record sets can (and should) be implemented using EXEC/TABLE from within WebFOCUS Maintain. In this way, the best software component is used for the right purpose. When updating a database with large record sets, deferred or batch updates should be given preference over purely online systems.