Thursday, April 18, 2013

Book review: Dynamics AX Performance Optimization Guide

When dealing with performance issues you have to understand in depth how all the components in a solution work by themselves and in collaboration with the specific other components of the solution. You also need to master several different toolboxes to measure performance of the various components. Few people master all these components and tools in depth.

This book is a collection of information you need to be able to prevent and to troubleshoot and fix performance issues with a Microsoft Dynamics AX 2009 and 2012 solution and the components that make up the total solution. The authors have described each topic in an easy and understandable style. You can read it with the purpose of learning more about performance with Microsoft Dynamics AX solutions and you can use it later on as a reference guide.

Experienced, or somewhat experienced, Microsoft Dynamics AX technical consultants are the main audience of the book.

The very first part of the book explains a bit about the architecture of a Microsoft Dynamics AX solution and there is a detailed description about how concurrency control works with Microsoft Dynamics AX.

Second chapter deals with how you monitor the solution. Database monitoring and various performance counters are described in this chapter. As all performance problems starts with some code being executed, there is a large section about tools to monitor and trace the code. This includes Microsoft Dynamics AX Trace Parser, Windows Event Tracing, WCF Service Trace Viewer Tool, Microsoft Visual Studio Profiling Tools, WebServer Performance Tester, Web Performance Test for Enterprise Portal, Performance Analyzer for Microsoft Dynamics AX and Process Monitor.

In the third chapter, there are explanations of things that need consideration for setup and configuration of the solution. This covers I/O configuration, backup strategies, SQL Server configuration, network configuration and Microsoft Dynamics AX configuration.

Fourth chapter deals with several common Microsoft Dynamics AX performance problems. And what you can do to fix these problems.

The fifth chapter is almost entirely dedicated to how you can optimize what SQL statements
Microsoft Dynamics AX sends to SQL Server. The chapter also covers a number of important SQL Server flags.

Chapter six is about the many optimization possibilities you have with SQL Server 2008 and 2012. The optimizations that specifically relates to Microsoft Dynamics AX performance and manageability are discussed here.

Database index management, fragmentation, statistics and locking behavior is covered in chapter seven. Here you can read about how to detect and reduce fragmentation, how to update statistics and how to control the locking behavior.

In the eighth chapter, you can read about how to plan and size the infrastructure for a solution to support the expected load on the system. Even though there is no silver bullet or a magic spreadsheet, as someone from Microsoft put it on the last Technical Conference for Microsoft Dynamics AX, there is a good take on a guide for calculating the expected workload. And how to do your sizing against that calculation. Also in this chapter you will find information helping you with eventual virtualization, Hyper-V, considerations.  

The book covers a lot of ground and it cannot stand alone as a single educational tool for all the described tools and components. You can for example find information much more detailed other places about Microsoft AX development for performance. However, that would make the book ten times thicker. With the books focus on the, for Microsoft Dynamics AX solutions, important things, the book works. I could make the bold statement that you could consider the book to be a kind of a Maggi cube for the information you need about all the different components that make up the Microsoft Dynamics AX performance experience.

I will definitely recommend the book. The investment in the book will quickly pay off if you are a
technical consultant working with performance issues in relation to Microsoft Dynamics AX.   

Martin Zhen and Daniel Liao are the authors of the book. I believe both to be employed at the Chinese offshore development center OutsourceAX. Regrettably, they have been too modest to include bios of themselves in the book. It would have been interesting to learn more about these guys.