code change · fixAL Developmentofficial - Microsoftreviewed - checked by Opus

#94 Correct performance knowledge guidance

Several performance knowledge articles and their samples were corrected for partial records, transactions, N+1 lookups, SIFT, bulk writes and read isolation. The invalid filter-only SetLoadFields rule and the generic production-scale article were removed, and an unsafe Sales Header deletion sample was replaced with a staging-table scenario.

Pull request · merged into main on 2026-07-14 by JesperSchulz · 31 files (+277 -259), 31 AL · fix · tier official · reviewed (checked by Opus)

What changed

  • Corrected the semantics and samples for partial records, transactions, N+1 lookups, SIFT, bulk writes and read isolation
  • Removed the invalid filter-only fields rule and the generic production-scale article
  • Narrowed the singleton, TextBuilder, dictionary and temporary-table guidance
  • Paired good and bad examples now keep the same behaviour
  • Replaced the unsafe Sales Header deletion sample with a staging-table scenario

AL objects touched

  • microsoft/knowledge/performance/addloadfields-in-report-onpredataitem.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/addloadfields-in-report-onpredataitem.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/addloadfields-in-report-onpredataitem.md: modified, not in the BC? snapshot
  • 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/avoid-get-inside-loop-on-large-table.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/avoid-get-inside-loop-on-large-table.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/avoid-get-inside-loop-on-large-table.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/choose-maintainsiftindex-by-read-write-ratio.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/load-common-fields-before-branching-on-case.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/load-common-fields-before-branching-on-case.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/load-common-fields-before-branching-on-case.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/omit-filter-only-fields-from-setloadfields.bad.al: removed
  • microsoft/knowledge/performance/omit-filter-only-fields-from-setloadfields.good.al: removed
  • microsoft/knowledge/performance/omit-filter-only-fields-from-setloadfields.md: removed
  • microsoft/knowledge/performance/order-case-branches-by-frequency.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/order-case-branches-by-frequency.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-dictionary-over-temporary-table-for-lookups.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-modifyall-over-per-row-modify.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-modifyall-over-per-row-modify.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-modifyall-over-per-row-modify.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-readisolation-over-locktable-for-reads.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-readisolation-over-locktable-for-reads.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/prefer-readisolation-over-locktable-for-reads.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/production-scale-tables-warrant-extra-analysis.md: removed
  • microsoft/knowledge/performance/singleton-setup-tables-need-no-access-optimization.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/temporary-tables-have-no-database-cost.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/use-deleteall-for-filtered-bulk-deletion.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/use-deleteall-for-filtered-bulk-deletion.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/use-deleteall-for-filtered-bulk-deletion.md: modified, not in the BC? snapshot
  • microsoft/knowledge/performance/use-textbuilder-for-string-concatenation-in-loops.md: modified, not in the BC? snapshot

Context

  • Systems: development, platform
  • From the description: “correct partial-record, transaction, N+1, SIFT, bulk-write, and read-isolation semantics and samples”

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).