One thing that I think is very important for a successful DBA to be aware of is their hardware environment. Database servers typically place more demands on their hardware resources than the more common web or application server, and if a database server is under pressure, it can cause lots of pain for your entire application or system.
Now, I am not blindly advocating simply throwing hardware at all of your performance problems. More often than not, you can find lots of areas for major performance and scalability improvement with application level optimization and refactoring, query optimization, and index tuning. In fact, you should always look at those areas first.
Being completely informed about your exact hardware resources is something you should always try to do. I am always disappointed when I ask a DBA what kind of hardware they are running on for a particular server, and the answer is something along the lines of “I’m not sure, a Xeon, I think…”, or if I ask them what kind of storage subsystem they are using, and they answer “I think it is on a SAN. The SAN guys know all the details”. There is really no excuse for that. Even if you cannot make any changes or you cannot afford any new equipment, you should know what you have, and have it documented somewhere. It’s really your responsibility as a database professional to know as much as possible about your environment.
There are two free tools that you can run on your servers to discover quite a bit of useful hardware information. The first one is CPU-Z, which is a freeware application written by Franck Delattre. CPU-Z has been around for years, and it has been very popular in the hardware enthusiast community as a quick and reliable way of discovering and documenting details about your CPU, CPU caches,motherboard, and RAM.
The first tab of CPU-Z for one of my production database servers is shown below:
You can see the exact processor and revision, the socket type, the manufacturing technology, the rated and current clock speed, the cache types and sizes, the number of physical processors, cores and threads (which equates to logical processors) on this tab. You can see that this database server has its processors “throttled back” to 1596 MHz because of Intel Enhanced Speedstep and because this server is running Windows Server 2008 R2 (which is much better about power management than older versions of Windows Server).
The Memory tab tells me that I have 72GB of DDR3 memory in triple channel mode, along with lots of other performance details about that RAM.
The second tool is msinfo32.exe, which is included in all recent versions of Windows (client and server). You can just type msinfo32 at a Run window, and you will see this:
This is for a test system (not one of my production servers). You can see the OS version, edition and build, the manufacturer and model number, the main BIOS version, the amount of physical and virtual memory and the page file size. This is all very useful information that is easily discovered with these two free tools. Don’t guess, when you can know the answer!