Saturday, February 4, 2012

SQL Express and the Curse of the Perfmon Counters

On a dark and spooky night in the land of SQL Server make-believe, a young warrior was asked to slay a beast preventing those in the land of SQL Server Express from collecting water from the Well of the Perfmon Counters.

While this warrior was only vaguely familiar with SQL Server Express, he thought - "It's a beast still in the land of SQL Server, just an outlying province." This warrior was not unfamiliar with slaying beasts in the land of SQL Server. He had slain hundreds of Dragons of Performance and had silenced the Horrid Beast of SSPI, so how could this beast in such a small province pose any threat.

Confidently, he stepped into the magical transport at Port 3389 and was quickly whisked away to the land of SQL Express. Upon arrival, everything seemed normal. The absence of the familiar SQL Agent was disheartening, yet expected, so he continued to the Well of the Perfmon Counters.

Other warriors had gone before to survey the land. They reported on the size and viciousness of the beast in the well, but he foolishly thought those were nothing more than exaggerations. So, at the well, he started to pull out the water. On the rope were labels that read "% Processor" and "Avg Disk Sec / Transfer", and many others as the rope continued to pull from the well. However, when he expected to find the bucket marked SQLServer:BufferManager, the rope was frayed. Just then, out of the Well came a beast the warrior had never before seen in the land of SQL Server Enterprise or even SQL Server Standard. This beast would surely require special magic to defeat. Sword and spear alone would not be sufficient.

Before being bitten by the hundreds of razor sharp teeth in the beast's mouth, the warrior fled into the woods to collect his thoughts and ask the all knowing, Sir BingsALot. Sir BingsALot offered a suggestion - restring the rope in the well by using the bark from the magical trees of Unlodctr and Lodctr. So, the warrior toiled to take this bark and weave it into a rope. First, the bark of the Unlodctr, then the bark of the Lodctr. Day and night, for days on end, without rest, food or water - Ok, enough of that - for 15 minutes with Pepsi and McDouble in hand.

With the new rope in hand, he ran back to the Well and dropped the rope. Once again, several labels appeared on the rope as he pulled it up, but just as he thought he could see the SQLServer:BufferManager bucket, the beast slashed the rope with its razor sharp claws and leapt from the well with more ferocity than before, frustrating the warrior, and sending him back to the woods for some more advice from SirBingsAlot. Try and try again, suggestions from the wisdom of the masses would just not work. Every time the rope would get close, the beast would appear, each time with more teeth and sharper claws, ready to pounce on the warrior.

The warrior, not defeated, but feeling weakened, decided to journey back home, closing the door on Port 3389, and enjoy some ice cream with the SQL Server family. It was while enjoying the wonderful ice cream Mrs. Warrior had purchased for just an occasion that he had an epiphany. SQL Express has never signed the 64-bit treaty with the other lands of SQL Server. SQL Express was still running under the magical laws of the 32-bit treaty.

The warrior thought - "I wonder if using the 64-bit bucket to retrieve the water is making the beast angry? I shall use the 32-bit bucket!". With speed rivaled only by the great runners in the #SQLRun at #SQLPass, this warrior jumped to Port 3389 where he was once again transported away to the land of SQL Express. This time, armed with the 32-bit bucket, he tied the 32-bit Perfmon bucket he collected from the "C:\Windows\SysWow64" folder to the rope and dropped it into the well. With great trepidation, he started to pull the bucket up. Once again the collection of counters, which he started to collectively call "OS" for no apparent reason, started to appear. The SQLServer:BufferManager bucket appeared... no beast. Victory! The warrior had done it.

As the warrior started to dump the bucked into the "Data Collector" barrel to save the water for drinking later, the bucket disappeared. Instantly, the beast appeared and knocked the warrior off his feet. How could this be! As the warrior ran off to safety, he got a detailed glimpse of the beast. This beast was not the same. This beast was nothing more than a copy of the original. While the looks were deceiving, the original was vanquished, this one was indeed new.

Armed with new key words, err, details to ask of SirBingsAlot, the warrior received his answer from a warrior in Microsoft Romania. Yes, buried deep in a tome from 2010, a bold warrior had shared his experience in slaying a similar beast in the land of SBS. Armed with the magical SQLctr90.dll spell collected from the province of SQL Server Standard, the warrior collected the water from the Well of Perfmon and saved it into the Data Collector barrel. While he could still hear the beast breathing heavily in the background, he failed to raise his head and allowed the water to be carried away. The water from the Well of Perfmon can lives on to energize the other warriors as they seek to slay the Dragons of Performance!

About Kyle Neier
Husband of a magnificent woman, father of 5, SQL Server geek, IndyPASS Vice President and Food Guy, DBA automation zealot, amateur Powershell evangelist.

Follow Me on Twitter

No comments: