Performance

2026

I Can Turn Off My Code. I Can't Turn Off Yours.

Setting RunTrigger to false on Insert, Modify, or DeleteAll doesn't just skip your own logic — it skips everyone else's subscribed to that table too. That's why running every trigger has to be the default, and why the real fix for the performance cost isn't a developer's judgment call at all: it's the platform checking, per execution, whether there's any code to run in the first place.

Weekly Recap: August 7-14

AL Runner shipped ~85 PRs closing correctness gaps and hardening the pipeline, bc-code-atlas's global_id now lets a self-hosted instance bridge into the public one to follow calls into Microsoft's base app, the AL Language Tests suite grew by answering AL Runner's own open questions, and the Linux fast lane got a week of real-world hardening.

2025

Planning Table Indexes for the Best Performance

A deep dive into all index types available in Business Central — clustered, non-clustered, covering indexes, SIFT views, and columnstore (NCCI) — with benchmarks and real-world deadlock examples from our BC TechDays 2025 session.

2024

Validate() – All Tables / All Fields / Always

Stefan Maroń and Christian Hovenbitzer argue at BC TechDays 2024 that Validate() should be the default in AL — not the exception — covering performance myths, chained validates, temp table pitfalls, and the cases where assignment is actually fine.

2023

My approach to custom APIs

When to use API Queries vs API Pages vs OData Bound Actions in Business Central — a practical approach to building readable, testable, and performant

2021

Be careful with dynamic code

How overusing RecordRef and FieldRef in Business Central caused a 650% performance regression on sales header modifications — and why interfaces fixed it

Speed up BC container creation

Save nearly 3 minutes per BC container build by pre-baking test libraries into your Docker image with New-BcImage and -includeTestToolkit — one simple

2020

Coding4Performance 4: Task Scheduler

How to use the Business Central Task Scheduler to queue background work across server instances, including Docker setup and scheduling tips.

Coding4Performance 3: Start Session

Step-by-step guide to using StartSession in Business Central AL to run codeunits in the background and improve user session performance.

Coding4Performance 1: Text Builder

AL TextBuilder vs string concatenation benchmarks — why += causes exponential slowdowns and how TextBuilder handles 10 million appends in just 6 seconds.