Freaky Tech Friday - Attack of the Resource Vampires
Welcome back Ghouls & Ghost, for this year's Shock-tober final fray into Freaky Tech Friday's! For those are still with us, you are the lucky souls who have traveled along the dark and twisted path. I end this years haunting season with a tale that strikes at the heart of many Microsoft Dynamics AX implementations. What I speak too is Attack of the Resource Vampires!
These resource sucking entities creep into existence, sometimes slowly, and sometimes right away in an instance of AX. They start with a focus around performance degrading as more and more processes are spun up for a customer. Those unknowing, slowly loose their ability to respond fast to process needs. Reports start to creep with on-set of early aging - as it would appear at least.
The major attack for these creepy creatures is typically a customers Microsoft SQL Server Database. This is the heart of performance, and like any good vampire, resource vampires always go for the heart. It's where the life blood flows...
Fear not though, young AX travelers as there is remedy for this lifeless state one might find their instance of AX in. There is hope for battling back the waves and waves of complaints from end users, as the processes & reports they so dearly need, dwindle into performance nightmares.
In order to fight back the unholy horde of resource sucking vampires, one must be armed with the right knowledge and correct tools. The sacred text tells us that the focus must first be on your SQL Server for getting the most out of your AX Investment from a performance perspective. There is a guide to this, once that applies to AX 2009 as well as AX 2012. You may find access to this guide, to the first step into performance enlightenment here.: Microsoft Dynamics AX 2009 White Paper: Planning Database Configuration. Keep in mind this applies, the same level of needs, no matter virtual or physical.
The idea is to attack the resource vampires foothold, with correct TempDB file settings, having create Disk I/O for Transaction Log commits, and enough RAM to load your entire DB - if possible. Further and beyond that is a focus on indexes. After having your SQL Server set in order, ready to fight, the next level the resource vampires move into is the indexes. They latch onto queries that execute and cause either full table scans or Clustered Index Scans. Both are costly and both can be addressed with equal levels of success. The focus here is around having the concept of "coverage indexes", that is an index that covers the where clause of your queries for the business logic and reports that execute them.
After this the resource vampires start to feel the pressure as your performance story starts to take a turn for the better, instead of one for the worse. Here is where those ugly resource sucking creatures dig in, and latch themselves onto poorly wrote code. We all have sinned in such ways, creating nested while selects that make multiple trips to the database.
The way out from this painful plight is to endure an analysis of the processes being reported as slow, and trace through the code that represents said processes. Find the resource vampires hiding in those nested while selects, or where clauses that have no coverage index. Then address them head on! Take them out, by changing the nested while selects to more complex joins, that reduce the result set being sent from the SQL Server to the end user.
There are other area's that one can look to totally eradicate the evil entities, but the above should be the majority focus for gaining ground and taking control of your instance of AX. Beyond the Server, Database, Indexes and code - sometimes the process has to be reconsidered for desired speed.
Well Ghouls & Ghost, take this warning about resource vampires to heart, and arm yourself's with the knowledge found above to fight back! Further you can download from InformationSource the IDMF tool, that helps with the on-going fight of battling these monters. Further a final warning on this, always stay vigilent in your efforts as performance tuning is a dynamic, on-going process. Let it slip, and before long your knee deep back into resource sucking vampires everywhere you turn!
I hop you have enjoyed this season's gruesome tales of Freaky Tech Friday's! I will leave you with what I looked like after have falling, and becoming a conference zombie. Be warned, the following picture shows the shadow of the man I once was, just before departing for Seattle.