code change · featureAL Developmentofficial - Microsoftreviewed - checked by Opus

#97 Add per-row AL performance guidance

New performance guidance documents how to use SetAutoCalcFields for per-row FlowFields and how to avoid cloning records before Modify or Delete in loops, with corrections to the commit checkpoint sample.

Pull request · merged into main on 2026-07-14 by JesperSchulz · 9 files (+174 -18), 9 AL · feature · tier official · reviewed (checked by Opus)

What changed

  • New guidance and AL samples for using SetAutoCalcFields with per-row FlowFields
  • New guidance and samples for avoiding cloning records before Modify or Delete in loops
  • Commit-checkpoint sample corrected: selects at most 500 ordered keys into a temporary buffer, then locks and processes only those keys
  • Performance review skill gained precise cues for per-row Commit and clone-before-write, with exclusions for valid checkpoints and direct writes
  • CalcSums remains the rule for a single filtered-set aggregate

AL objects touched

  • microsoft/knowledge/performance/avoid-cloning-records-before-modify-delete-in-loops.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/avoid-cloning-records-before-modify-delete-in-loops.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/avoid-cloning-records-before-modify-delete-in-loops.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/avoid-commit-inside-loops.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/avoid-commit-inside-loops.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/use-setautocalcfields-for-per-row-flowfields.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/use-setautocalcfields-for-per-row-flowfields.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/use-setautocalcfields-for-per-row-flowfields.md: added, not in the BC? snapshot yet
  • microsoft/skills/review/al-performance-review.md: modified, not in the BC? snapshot

Context

  • Systems: development, platform

Source: metadata of a merged pull request in microsoft/BCQuality (bcquality): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).