The explosion of SQL Server instances in many corporate IT environments has resulted in SQL Server licensing “sticker shock.” Whether you’re having to purchase new SQL licenses or performing a Microsoft “true up,” and whether you are under the previous licensing model or Microsoft’s newer model of licensing by computing power per core, or even if you’re on the retail box model, SQL Service licensing costs represent a significant bottom-line expense. And let’s not forget software assurance costs, which can be as high as 25% the cost of your annual license.
Compounding this situation is the fact that understanding SQL Server licensing and navigating the options is not easy. As a result, IT managers, DBAs, and consultants are constantly scrambling to ensure their company/client is in compliance. Fully understanding the nuances of SQL licensing is a professional discipline unto itself, practically requiring a PhD in software licensing and even a law degree in some cases – which are fields of expertise not common in the DBA consulting community—which is where I live.
So, the issue for DBAs is, what proactive steps can we take to help companies lower their SQL Server licensing costs? One approach that I’ve used successfully is by informed, “data-driven” server consolidation. That is, lowering SQL licensing costs by simply lowering the number of SQL Server deployments in the environment. And yes, I understand this is easier said than done.
There can be serious implications to loading all of your databases onto only a couple or few SQL Servers. However, by consolidating your SQL Server environment, it gives the IT department the ability to lower licensing cost, maintenance cost, hardware costs and environment costs. The lower costs can provide companies with a lower TCO (total cost of ownership) for their SQL Server environment. The larger the environment, the larger the savings, and this becomes a very attractive and worthwhile consideration.
Here’s the structured approach I use for my clients to help them consolidate their SQL Server environment. First, you need to understand the needs of all of your databases, including performance requirements (CPU, memory, disk I/O), usage needs (transactions per second, simultaneous users, network accessibility, and high availability), etc.
The best way to understand these needs is to build a SQL database performance and usage matrix. Much like a compatibility matrix, a performance and usage matrix provides you with big picture of the overall performance and usage of the databases in your environment. Here’s a simple example.
(Click on the image to enlarge.)
This performance/usage matrix is based on a scale of 1 – 10, with 1 being extremely low performance/usage and 10 extremely high. The averages were calculated in each category and then combined to give each server a score. Notice Server04 is underutilized compared to the other servers and that Server05 is over-utilized. If your corporate goal was to reduce the number of servers by 50%, this information would allow you to balance the databases on a lower number of servers without causing overload in any one particular area.
Following is post-consolidation performance/usage matrix for the same organization.
(Click on the image to enlarge.)
The post-consolidation matrix shows the databases with their same average numbers, but they have been redeployed in an environment that includes only three total servers. Notice the performance/usage score for each server is now closer to that of the other servers. Thus, we were able to reduce the environment by 50% and balance the load of the databases equally across three servers.
Of course there are other factors to consider in a SQL Server consolidation: security, importing and exporting of data, network alignment, just to name a few. And don’t forget cultural requirements, such as those teams that require an exclusive server for their application, regardless of technical need. Overall, this method is a good starting point to use when perform SQL Server consolidation, and by consolidating your environment, you are helping your company achieve its goal of lowering its Microsoft SQL Server licensing costs, and thus lowering the total cost of ownership.