Loading strategies
Power BI does not hand a visual a whole deep hierarchy at once when drilling is on - it delivers it level by level. Smart Matrix therefore offers two ways of getting the rows. You choose one the first time the visual is shown (see Set up the visual) and can change it any time.
Where to find it
Start tab > Loading opens a menu:
| Section | Entry | What it does |
|---|---|---|
| Loading Strategy | Lazy Loading | Load the whole hierarchy up front. |
| On-Demand Loading | Load a row's children when the row is opened. | |
| Preload Settings | Preload Rows > Off, Layer 2 ... Layer N | Only with On-Demand Loading: load down to a layer when the report opens. |
Exactly one strategy is always selected; clicking the one that is already active does nothing. Preload Rows is greyed out (with the hint "Enable On-Demand Loading first") under Lazy Loading, because Lazy Loading loads everything anyway.
📷 Screenshot needed:
loading-menu.png- the Loading menu with On-Demand Loading selected and the Preload Rows submenu open.
On-Demand Loading
- Power BI's drill is on for the visual; its drill buttons are available.
- A row's children are fetched from Power BI when you open the row (or when you use a Layer Toggle or the row menu's Expand entries). While they are being fetched, the loading indicator turns orange and the dot of the layer being opened turns orange.
- Rows that you open are remembered and restored the next time the report opens.
Preload Rows
Preload Rows loads layers before you ask for them, so that opening a row later is instant.
- Off (the default): nothing is loaded in advance. The report opens at the layer it was saved at and loads nothing more.
- Layer 2 ... Layer N: on the first load of the report, the visual loads down to that layer - by drilling the report layer by layer, which is one request per layer for the whole table, not one per row.
- The chosen layer takes effect the next time the report is opened; changing it does not load anything right now.
How the preload and the saved state combine:
- If the report was saved deeper than the preload layer (for example saved at layer 7 with the preload on layer 5), it opens at layer 7. The visual never drills up to the preload layer.
- If the report was saved shallower (saved at layer 3, preload on layer 5), it opens at layer 5.
- The rows that were open when the report was saved are opened again, down to that depth.
- With Preload Rows off, the visual does not drill at all: a report saved at layer 5 simply opens at layer 5.
- Drilling up yourself ends the preload for good (until the report is opened again).
Lazy Loading
- Power BI's drill is switched off for the visual: every layer arrives at once and there are no drill buttons to fight with.
- Because everything is already there, opening rows and using Layer Toggles is instant.
- The first load of a very large hierarchy can take longer, and the loading indicator shows the progress.
- On older Power BI hosts that cannot switch drilling off, the visual drills down through the layers itself to reach the same result.
Changing the strategy resets the drill state and the opened rows, as on a fresh load. The formatting you did is not touched.
Very large tables: rows arrive in parts
Power BI delivers rows in segments (up to 30,000 rows per request). Smart Matrix shows what has arrived and keeps adding more; the table is rebuilt in steps while the data comes in, so a huge dataset shows something useful immediately. The loading indicator shows how many rows have arrived and lets you stop.