top of page


On the efficiency of indexes on a skewed dataset
Recently, one particular piece of code in Business Central's codeunit 1501 Workflow Management once again revived the old discussion about the benefits of calling IsEmpty before actually retrieving the records with FindSet . Yes, that inexhaustible if not IsEmpty then FindSet . I already wrote about this a few times here and here . But this time the combination of IsEmpty with FindSet appeared to be a good pretext to talk about index efficiency: when a seemingly good index
Dec 10, 2025


Performance benefits of SetLoadFields in a slow network
Introduction of the SetLoadFields function in AL language that allowed to limit the number of fields returned to the Business Central...
Sep 3, 2025


JIT loads vs Full record load
Since the time when I came across this post by Waldo (or actually, he mentioned his test results in one online discussion) I was curious...
May 31, 2025


To sort, or not to sort, that is the question
Back in the old Navision days, when clients' data were stored in the Navision native database instead of Azure SQL Server, and functions...
May 30, 2025


Filtering on FlowFields
It has been said so many times that filtering on FlowFields is bad for performance that we are used to avoiding this kind of filters in...
Feb 6, 2025


Another alternative to SIFT: Columnstore indexes
According to this article on Microsoft Learn portal , non-clustered columnstore indexes (or NCCI) are seen as a possible replacement for...
Nov 10, 2024


Hidden SQL queries in AL you (probably) want to avoid
Development of Business Central extensions is very much about the database communication, and as AL developers, we always control the...
Oct 28, 2024


Covering indexes as an alternative to SIFT
In two of my previous blog posts I reviewed some pros and cons of the SumIndexField Technology (or SIFT) in Business Central. On the one...
Oct 20, 2024


if not IsEmpty then FindSet... Or not?
This post is a result of one very fruitful discussion with many knowledgeable Business Central enthusiasts in a long LinkedIn thread. Now...
Aug 25, 2024


The dark side of SumIndexFields. Concurrency.
My previous post was dedicated to an overview of Business Central's SumIndexField Technology, or simply SIFT, which helps us collect...
Aug 9, 2024


SIFT
SIFT, which stands for Sum Index Flow Technology, used to be a know-how in the Navision database, a data structure that stored...
Aug 5, 2024


Select with partially matching index: can we make it faster?
Let's assume we want to select a set of customer ledger entries based on two values: salesperson code and the payment reference. Or any...
Jun 20, 2024


if not IsEmpty() then DeleteAll()
My previous post on good and bad coding practices in terms of the performance touched upon one particularly contradictory coding pattern...
Nov 14, 2023


Top 5 AL mistakes that undermine performance
This post is my shortlist of the most common beginners' mistakes in AL that affect application performance. These are not necessarily the...
Nov 10, 2023


How scary are table extensions?
Business Central table extension object, when compiled and deployed, translates to a new SQL table with the same primary key as its base...
Aug 1, 2023


When partial records and indexes reach synergy
Continuing performance testing of queries on extended Business Central tables, today I want to look at the same dataset from a slightly...
Jul 13, 2023


Who benefits from partial records: The true magic of SetLoadFields
Server-side perspective One of the key characteristics of the C/AL language and its more modern ancestor, AL, that makes it so attractive...
Jul 6, 2023


Locking Scope: Differences between LockTable and ReadIsolation
Today, once again, I am returning to the topic of table locking, lock escalation, and the way Business Central interacts with SQL Server...
Jul 1, 2023


Introduction to Business Central Caching - Part 2
The effects of SetLoadFields and AutoCalcFields on caching This post continues the topic of query caching in Business Central which I...
Jun 29, 2023


Introduction to Business Central caching
A few days ago, I had a chat with a friend who asked me where his BC data access queries could be hiding from the SQL Server Profiler. He...
Jun 23, 2023
bottom of page