Business Central – How to make it go FAST!
Microsoft in late January and early February published a series of pages on Microsoft Docs dedicated to performance with Business Central (On-premise, Cloud).
They are all very interesting, in particular, I want to report this page because it is very interesting for functional consultants (as in my case) more than for technicians; these are the things we repeat daily to our customers …and finally Microsoft has decided to formalize them.
How Application Configurations Affect Performance
- Schedule long running reports to run in background
- Schedule jobs (for example posting) to run in background
- Enable background posting in areas where your business is using reservations and item tracking using serial and lot numbers
- Adjust item costs as a periodic background job (i.e. do not adjust automatically)
“Do not run job queues too frequently!”
When the Business Central database needs to have exclusive access to a table or a data row, it will issue a lock. When another session needs to access a locked resource, it needs to wait until the session holding the lock is finished with its work.
Use number series that allow gaps
Number series in Business Central are a shared resource that sometimes cause locking issues. Not all records that you create in Business Central are financial transactions that must use sequential numbering. For all such number series, consider using number series that allow gaps to avoid locking issues. For more information, see Gaps in Number Series.
Be cautious with the Copy company operation
The Copy company operation is not intended to run while business transactions are being applied to Business Central. Should you need to perform a Copy company operation, it is highly recommended to do it outside working hours. Do turn off scheduled jobs while performing Copy company to avoid locking issues.
Things that affect UI performance
Consider personalizing your UI for performance (hide non-essential parts on role center, list, and card pages)
Use links instead of document attachments to improve performance
Faster data entry-Keyboard Shortcuts
Use keyboard shortcuts for faster data entry
Block inactive entities
Block inactive customers, vendors, or items to improve filtering and searching on document data entry
Search in lists searches all columns in the database. To avoid resource starvation on broad data searches, a search might be subject to a timeout in which case the user will see a “Searching for rows is taking too long. Try to search or filter using different criteria.“ message.
If users are experiencing slowness in data search, suggest them to set a column filter instead
Performance effect of enabling integration on a table
There is a performance overhead involved in enabling integration on an entity such as Customer or Contact that will impact performance. Only enable integration if you intend to integrate with Dynamics 365 Sales, and only do so on the entities that are needed.
Functionality with known performance impact
These areas of the Business Central application are known to cause a performance impact and require extra testing with realistic data setup before they are rolled out.
- Security filtering mode
- Inventory Posting
- Dynamic Order tracking
- Automatic reservation
- Item tracking and Lot/SN Expiration dates
- Change log
“Please do not do this”!
Finally, make sure that you do not repeat these performance mistakes that we have seen cause massive performance issues for customers:
- Do not adjust cost item entries with a high frequency.
- Do not set up a change log on everything. For more information, see Auditing Changes in Business Central.
- Do not run job queues too frequently.
- Do not adjust item costs automatically if you have a lot of item entries (run in the background instead).
- Do not postpone setting up global dimensions, as this can be a heavy operation when you have a lot of data: set up correct global dimensions to avoid changing them later on.
- Do not run the Copy company operation during business hours.
“Performance Topics For Developers”
- In this topic you can read about ways to tune performance when developing for Business Central.
- Writing efficient pages
- Writing efficient Web Services
- Writing efficient reports
- AL performance patterns
- Efficient Data access
- Testing and validating performance
- Tuning the Development Environment
Optimizing Visual Studio Code (settings.json)
Open your settings.json file in the project (or global settings if you prefer that). Set:
- “al.enableCodeAnalysis“: false to remove code analysis, read more here Using the Code Analysis Tool.
- “al.enableCodeActions”: false
- “editor.codeLens“: false to remove code lens in Visual Studio Code, see Code Navigation.
Add the build folder to the exclusion list for Windows Defender.
“HOW TO SOLVE” PERFORMANCE PROBLEMS PAGE
How to work with a performance problem