To compare report performance I created a fresh install of Totara with the 2.2 version of report builder and the 2.2 version of configurable reports from:
I ran the tests using MySQL with InnoDB on a Mac Book Pro.
I created a few custom user profile fields: a checkbox, menu and a text field.
I created a user report in both systems, setting pagination to 40 results per page.
- Columns: Firstname, Lastname, username, email, text custom field, checkbox custom field, menu custom field
- Filters: text custom field, menu custom field
I then tested both reports, first with the initial user database (2 users), then with 1,000, 10,000 and 100,000 users.
Users were created by generating an upload users file of the form:
firstname,lastname,profile_field_text,profile_field_checkbox,email,username First1, Last1, Text1, 1, firstname.lastname@example.org, username1 First2, Last2, Text2, 1, email@example.com, username2 ...
For each test, I reloaded the report until page DB reads stabilised (presumable there was some caching of the standard page elements). I tested the report unfiltered and also filtered to only show a single result.
Here are the results for Report Builder (RB) and Configurable Reports (CR):
|Report||DB reads RB||DB reads CR||Load time (s) RB||Load time (s) CR|
|2 users filtered to 1||48||74||0.47||0.68|
|1000 users filtered to 1||48||74||0.57||0.79|
|10000 users filtered to 1||48||74||0.64||3.8|
|100000 users||48||Did not load||0.54||> 5 minutes|
|100000 users filtered to 1||48||Did not load||2.84||> 5 minutes|