I´m currently having the opportunity to find/calculate the peak hour for one of our Microsoft Dynamics 365 for Finance and Operation customers. The project is now live for almost one year and we want to validate our initial sizing with figures from the current production system. In addition to the validation we want to use the figures to size the next rollout in the project.
If you want to find/calculate the “real” peak hour of MsDyn365FO you simply have to crunch the numbers you have in your F&O database. You can do the by using SELECT – OVER-Klausel within T-SQL or you can simply build up and fill your reporting structure by using X++ and transfer the date to powerbi.com to analyze it.
In my case I´m using a custom reporting/aggregation structure which contains 15 minutes time slices eg. start interval 28.02.2019 10:00 AM to end interval 28.02.2019 10:15 AM. For each possible interval I´m creating a record in a custom table which also contains the record counts of specific tables. For example I´m aggregating SalesLines, PurchLines, WHSWorkLines, WHSLoadLines, … by CreatedDateTime for each interval. To give you an idea of the data here is a of my custom table in MsDyn365FO table browser:
To calculated and transfer the data I´m using a batch job in sequence with an export to the BYODB of my choice. After transferring the data to powerbi.com, identifying the “real” peak hour of MsDyn365FO is fairly easy, as you can see in the following picture. Now you can use this figures e.g. to size the next project stage or identify bottlenecks in your daily work load.