In just a few days the new major version of Business Central 2021 wave 2 will be introduced! This is again a huge set of changes that comes with this new version.
In this article, we will look at the most important changes in AL Language performance (performance snapshot debugging and changes in development to reflect performance issues).
Profiling AL performance with Snapshot Debugger
Until now, there has been no existing way of measuring the performance of development execution and troubleshooting cases of performance issues. Since performance is a priority in online businesses, Business Central introduces execution timing capture as a snapshot or part of it.
Snapshot captures will catch the executed code’s profile, and the AL Language extension for VS Code will have a performance profiling editor view so developers can dissect performance execution with call stack views.
Support for included columns in the keys
Developers can modify indexes to included data required for some queries using the partial record loading feature, and these data can be loaded quickly using the index pages.
By using the keyword IncludedColumns in the key definition while creating indexes with included columns, developers can now create indexes that perform great.
Benefits of indexes with included columns are:
- In an index definition, included columns will not count against the limit of 16 fields (maximum number of fields that can be part of the key). Included columns do not count to this limit.
- It requires less database I/O.
- It is smaller and more possibly cached.
Support for non-clustered column store indexes
With the Business Central 2021 wave 2 developers can create NCCIs (non-clustered column store indexes) by using the keyword Columnstore in the table definition. NCCIs may have multiple performance benefits in reducing table locking caused by maintaining original SIFT indexes (which can be replaced by modern NCCI technology).
NCCIs provide a better performance, especially when developers use SetAutoCalcFields for fields without SIFT index.