Rules and calculation
The new Rules Engine has a completely different method of calculating rules. Instead of fetching each data cell individually as the requirement arises, the new Rules Engine calculates the entire range of cells that the rule is required to execute. This data is fetched as a block in as few operations as possible. The question of whether a given cell is empty is simply ignored. The fetch requests all the cells, whether empty or not. Only the non-empty cells return data, and only this data is processed.
In a sense, the difference in fetching behavior between the old and the new rules engines is similar to the difference between the behavior of DBGet and DBGetC formulas in Office Plus. DBGet get individual data cells from the server. Unlike DBGet, DBGetC collects all the database accesses and sends them to the server in as few individual accesses as possible. Because the turnaround time for individual accesses is high, this is a time saver, even though, from the user perspective, the same amount of data is transferred.
Sometimes it is not clear where the data comes from without executing the rule. This is the case with conditional rules; that is, with rules containing the IF function. For example, if the location of a target cell depends on whether the evaluation of a condition is True or False, then it cannot be clear where the data is supposed to come from. But the OLAP Server solves this problem by fetching the data for the evaluation of all conditions first. Then it continues with two sub-queries, one for the cases where the condition is true and the other one for cases where the condition is false.
| File\Section | Parameter | Change | Old value | New value |
|---|---|---|---|---|
| DB.INI\MEMORY | CacheSize | Enabled by default | 0 | 1 |
| DB.INI\INIT | MaxTileSize | Higher value, can cause issues to costumers without acceleration and not optimized rules | 1e6 | 1E80 |
| DB.INI\INIT | MaxExportTileSize | 1e6 | 1E80 | |
| DB.INI\MEMORY | CSDSlots | Higher number for more calculations of more users | 1024 | 8192 |