Warning: number_format() expects parameter 1 to be float, string given in /data/web/virtuals/7298/virtual/www/wp-includes/functions.php on line 412

Performance in AL Language development (BC2021 wave 2)

by Sep 29, 2021AL Language

Home 9 Development 9 AL Language 9 Performance in AL Language development (BC2021 wave 2) ( Page )

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:

    1. 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.
    2. It requires less database I/O.
    3. 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.

Recent Articles from the category

Returning complex types in AL Language

Returning complex types in AL Language

In Microsoft Dynamics 365 Business Central 2021 w1 (released in May 2021), a profound change was introduced to ways how we can design our applications Until this version, the only way to return complex data types (like records, codeunits, Lists etc.) was using the var...

read more
Import various file types with Interfaces

Import various file types with Interfaces

A few weeks ago, I described a solution for importing an Excel file to the Business Central using Excel Buffer in AL Language (see here). In today's article, we will look at how to build a more complex solution that can be used for file imports without the needs to...

read more
How to import Excel files using Excel Buffer

How to import Excel files using Excel Buffer

Last week, I saw a question about importing data from Excel file to Business Central using AL Language. A few years ago, the only solution was to use DotNet integration. However, with the Business Central, there is a much quicker and better approach. All functions for...

read more