For the next few weeks I'm going to be turning my attentions to Microsoft SQL Server as the new version, 2008 is now with us and even has it's first big patch CU1. I am however not going to focus on coding as plenty of others on GWB have that sufficiently covered.
It is fair to say that SQL Server has turned into a monster, it's far more than just a database product these days, it is a complete data management suit of tools. Some of the tools are fully fledged complex products in their own right that some individuals happily make a good living from specialising in. The amazing Chris Webb is a good example with the BI tools in SQL Server.
The database market is very competitive. SQL Server's main rivals are MySQL, Oracle and IBM's DB2. What differentiates SQL Server from most of it's rivals is that many of the tools aren't licensed individually but are bundled with the product. Depending on what version you buy is what tools you get included. This SQL Server version comparison chart will help. If new tools arrive they are often released as a value-adds at no additional licensing cost.
It is worth keeping in mind that Oracle is the current market leader, however pricing, features, reliability and performance are comparative to SQL Server, so SQL Server may be second but it's not second rate and so there is little point in migrating from SQL Server to Oracle unless you have a very strong business case as a reliability, interoperability, performance, ease of maintenance or TCO arguments are unlikely to cut it. So if you are an Oracle shop with some SQL Server, my advice would be to suck-it-up and brush up on your SQL Server skills.
SQL Server Enterprise is not cheap, you won't see much change out of £16,000 and that's for a single processor socket, hence why I think it's a bit naughty that the 'Enterprise Developer' edition enjoys all the same features is around 300 times less in price; the only distinction being between the two versions is the developer edition can't be used in a production environment. So Enterprise Developer is nothing more than a thinly veiled lure, hardly subtle but Microsoft is a business and you worse in the high-street so lets get over calling this a sharp practice.
If you are going to go Enterprise edition get your money's worth by ensuring that features that comes only with Enterprise are well used. Standard edition is no slouch and offers a great deal of features that Enterprise has, so for money's sake it may well be worth having the Standard edition as the default choice and use the 'ROI justification thumb screw' for any DBAs or developers that mentions the word 'Enterprise'. Seriously, the Enterprise edition has many performance and high availability options that can make a big difference so it is worth performing a ROI exercise to fully understand how this version can make a big difference to your business.
To be fair Microsoft licensing doesn't charge per processing core which IBM and Oracle both do. As Oracle licensing is complex and confusing partner companies are making a mint out of performing licensing audits. You can imagine that lots of money can and has been saved. I wonder how much money software venders wouldn't have if we all got the licensing right, enough to wipe out third world debt? No wonder Larry Ellison has more money than Bill Gates now. Actually software audits are easy money for partner companies as they get a percent of what is saved but if your organisation turns up short they get money for selling licenses, win-win for all concerned. It is however worth it as fines are big and in the UK senior managers can, if convicted, risk serving a custodial sentence.
SQL Server has enjoyed a recent change in licensing in a virtualised environment which I covered recently, Monetarily speaking placing SQL Server in a virtualised environment still isn't the best of idea's and is worth avoiding if you can. Why? SQL Server is charged per virtual processor when in a virtualised environment translates into the physical world can just be a processor core. In the physical world SQL Server is charge per processor or 'socket' and most processors these days have multiple cores so staying physical allows your cash to go further. With more and more processing cores per processing chip on the horizon Microsoft is aware that charging by socket is popular I hope they will avoid temptation and reconsider. My organisation has decided to standardise on HP ProLiant BL685c G5's for SQL Server. These machines have 4 x AMD Quad core Opteron, so that's 16 cores, so that means 12 processing cores extra to benefit SQL Server. In this scenario Oracle isn't as competitive.
Speaking of processors, a frequent question asked when selecting a server to run SQL Server is whether to chose an Itanium processor or not. The choice at one time was clear, Itanium was 64bit the other processors types were not, this has all changed in the last few years with newer Xeon and Opteron processors going 64bit as well. As Itanium can execute sets of instructions in parallel it can seemingly process tasks quicker than Xeon and Opteron however the SQL Server optimizer can take advantage of multiple cores to process different parts of a query so now the choice between the two has become difficult. So the difference comes down to the actual database you are running. My gut feel is that there is a big difference monetary between the two so it is worth performing a comparison between the two. What you will have to keep in mind is the multiplier difference between the two worth the extra justification in costs? This is why I don't hear of many companies going Itanium.
Perhaps what is just as important in terms of the helping with SQL Servers performance is the disk I/O configuration. You are going to need a combination of RAID 5 and RAID 1+0 (sometimes known as RAID 10, not to be confused with RAID 0+1, this is important as they are different) disk groups so you are going to need to look at a NAS or SAN but this is sometimes not enough. Infact the whole SQL Server I/O story I will cover in a later post and how it is now a crucial consideration in database design.
The last consideration is how much RAM do you put into the physical server that will run SQL Server? Well you can turn this into a science and I will be covering that in a later post but my advice for now would be to analyse the performance of the databases that are going to use that box and try and mirror the workload it's going to experience through-out it's working life such as usage peaks in connection numbers and concurrently executing queries. However most people forget all this and buy as much memory as the budget will allow and whilst memory is cheap so indeed it may not be worth beating yourself up if the budget allows for 64GB.
The last and most important cost consideration is also the most invisible to the balance sheet, is ensuring staff have the knowledge to get the best out of the investment in SQL Server. Ignore this at your peril. Staff must have training and access to reference resources. he lesson is, don't skimp as this will directly impact the effectiveness of the staff that are going to develop and manage SQL Server! An expensive SQL Server installation will turn into a white-elephant or worse, a performance nightmare, without the right training. So lavish time and money on that and watch it pay you back ten times over. Yes, knowledge is the only real gift that keeps on giving.
Technorati tags: SQL Server