#198 Add BC performance knowledge from OptimAL learnings
Adds six performance knowledge articles with paired good and bad AL examples on workload-based and overlapping indexes, buffered inserts, aggregate-before-write, scoped reuse and repeated validation. Refines existing guidance on partial loads, temporary buffers, bulk updates, existence checks, primary-key caching and FlowField versus stored totals.
- 37files
- 36AL files
- 0objects
Pull request · merged into main on 2026-09-29 by JesperSchulz · 37 files (+920 -37), 36 AL · feature · tier official · reviewed (checked by Opus)
What changed
- Six new articles on workload-based keys, overlapping indexes, buffered inserts, aggregate-before-write, scoped result reuse and repeated validation
- Each new article has paired good and bad AL examples
- Existing guidance refined for partial loads, temporary buffers, bulk updates, existence checks, primary-key caching and FlowField versus stored-field totals
- SIFT-specific SetCurrentKey case clarified
- Performance-review retrieval and evaluation fixtures extended for the new rules
AL objects touched
microsoft/knowledge/performance/aggregate-before-persisting-intermediate-results.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/aggregate-before-persisting-intermediate-results.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/aggregate-before-persisting-intermediate-results.md: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/avoid-get-inside-loop-on-large-table.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/avoid-repeating-unchanged-validation.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/avoid-repeating-unchanged-validation.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/avoid-repeating-unchanged-validation.md: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/cache-repeated-filtered-results-with-explicit-scope.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/cache-repeated-filtered-results-with-explicit-scope.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/cache-repeated-filtered-results-with-explicit-scope.md: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/calcsums-instead-of-calcfields-in-loop.bad.al: modified, not in the BC? snapshotmicrosoft/knowledge/performance/calcsums-instead-of-calcfields-in-loop.good.al: modified, not in the BC? snapshotmicrosoft/knowledge/performance/calcsums-instead-of-calcfields-in-loop.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/design-covering-keys-from-read-pattern.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/design-covering-keys-from-read-pattern.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/design-covering-keys-from-read-pattern.md: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/isempty-before-findset-is-extra-round-trip.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/prefer-modifyall-over-per-row-modify.good.al: modified, not in the BC? snapshotmicrosoft/knowledge/performance/prefer-modifyall-over-per-row-modify.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/preserve-buffered-inserts-by-separating-target-reads.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/preserve-buffered-inserts-by-separating-target-reads.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/preserve-buffered-inserts-by-separating-target-reads.md: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/primary-key-get-in-loop-is-transaction-cached.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/query-results-bypass-primary-key-cache.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/review-overlapping-keys-before-adding-an-index.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/review-overlapping-keys-before-adding-an-index.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/review-overlapping-keys-before-adding-an-index.md: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/setcurrentkey-sets-sort-order-not-index-hint.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/temporary-tables-have-no-database-cost.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/temporary-tables-have-no-database-cost.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/performance/temporary-tables-have-no-database-cost.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/use-setautocalcfields-for-per-row-flowfields.md: modified, not in the BC? snapshotmicrosoft/knowledge/performance/use-setloadfields-for-partial-records.bad.al: modified, not in the BC? snapshotmicrosoft/knowledge/performance/use-setloadfields-for-partial-records.good.al: modified, not in the BC? snapshotmicrosoft/knowledge/performance/use-setloadfields-for-partial-records.md: modified, not in the BC? snapshotmicrosoft/skills/review/al-performance-review.md: modified, not in the BC? snapshot
Context
- Systems: platform, development
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).