Performance Issue – Maximum buffer size

Issues:

We keep getting performance error when using forms in AX (CustTable, SalesTable, etc).  One common pattern is that tables using in these forms are heavily customized. More fields, joins are added.  Increasing buffer size did not help, clearing cache helped some scenarios but not all.  Some issues appeared and then went away.

Errors can be like the following :

The number of joins in the statement is 32. This exceeds the maximum of 26. Turn on exception for this warning to see the call stack.

The total, internal size of the records in your joined SELECT statement is 61176 bytes, but Microsoft Dynamics is by default performance-tuned not to exceed 49152 bytes.

It is strongly recommended that you split your table(s) into smaller units.
Alternatively, you have to specify a ‘Maximum buffer size’ value of 60 Kbytes or higher on the ‘Database Tuning’ tab page in the Microsoft Dynamics AX Server Configuration Utility. The default value is 24 Kbytes.

image

Cause:

DEL_ fields are only needed when we do an upgrade from previous version. In our case, we are not doing an upgrade; therefore we can safely turn off those keys. Generally speaking turning these key off, it removes the physical data from the database. Hence, it reduces fields returned from select statements, which in this case is  a great performance improvement

Solution:

If you have been running successfully for a reasonable timeframe (three months for example), then you can consider turning off the configuration key. It is recommended to turn these off in all environments.

1> Go to System administration > Setup > Licensing > License configuration
2> Turn these “Keep update objects” off
3> Sync and generate CIL

image