The number of records accessed (read, update, create and delete) during a backend operation is one significant factor that a software developer can influence during development time. The number of records accessed very often provides more constant insight into the final system performance than looking at a stop watch. Developers can influence the number of records read for instance through database queries and the resulting index selection or by extensive aggregation of database records into Business Entity result sets, e.g. in calculated fields.
The total number of database records read during a Business Entity Fetch Data operation should stand in a reasonable relation to the resulting temp-table records made available to the consumer.
The SmartComponent Library supports developers with providing insight into the number of records and index nodes accessed during development and testing. Those utilities are based on the _userTableStat and _userIndexStat VST’s (virtual system tables).
Inspecting User Table and Index Access in the Business Entity Tester
The Business Entity tester provides a simple way of inspecting the record and index access. From the Business Entity Toolbar, developers can open the “User Table & Index Statistics” view.
The contents of this view are always updated when the Business Entity Tester performs a request to the Business Entity.
Inspecting User Table and Index Access during and AppServer call
While testing an Application (with or without the AppServer), developers can get the same statistics written into the AppServer or Client Logfile. The output is always performed at the end of a service interface interaction.
This output is loaded by Consultingwerk.OERA.TableStatistics.RequestUserTableStatsMonitor class. This class subscribes itself to the Service Interfaces Activated and Deactivated events. To activate this class, developers need load the service definition from the Consultingwerk/OERA/TableStatistics/services_request_monitor.xml file. For an AppServer this can be achieved by adding following to the parameter of the AppServer startup procedure: