Speaking at PASS Database Administration Virtual Chapter

I will be speaking at the PASS Database Administration Virtual Chapter on February 13, 2013 at 12PM MST. I will be presenting the latest version of my Hardware 301: Diving Deeper into Database Hardware deck.

The LiveMeeting link is here. If you want a chance to win a $50.00 Amazon gift certificate, you need to register here.

Here is the abstract for the presentation:

Hardware 301: Diving Deeper into Database Hardware

Making the right hardware selection decisions is extremely important for database scalability. Having properly sized and configured hardware can both increase application performance and reduce capital expenses dramatically. Unfortunately, there are so many different choices and options available when it comes to selecting hardware and storage subsystems, it is very easy to make bad choices based on outmoded conventional wisdom. This session will give you a framework for how to pick the right hardware and storage subsystem for your workload type. You will learn how to evaluate and compare key hardware components, such as processors, chipsets, and memory. You will also learn how to evaluate and compare different types of storage subsystems for different database workload types. This session will give you the knowledge you need to make sure you get the best performance and scalability possible from your hardware budget!

I really enjoy talking about SQL Server hardware, so this should be a lot of fun. I hope you are able to take the time to listen to the presentation!

Posted in Computer Hardware, PASS, Processors, Storage Subsystems | Tagged | 1 Comment

SQL Server 2008 R2 Diagnostic Information Queries (Feb 2013)

Here is the February 2013 version of my SQL Server 2008 R2 Diagnostic Information Queries, with some minor tweaks and improvements to several of the existing queries. I have decided to split off this into a separate version just for SQL Server 2008 R2. There are also two new queries that I have added this month. 

To go with it is an updated, blank 2008 R2 results spreadsheet, where the tabs in the spreadsheet are labeled and in the same order as the queries. The idea is that you can run these queries one by one, click on the top left square of the results grid, and then right-click and select “Copy with Headers” to select and copy the results of the query and then paste them into the matching tab of the results spreadsheet.

One new feature in this version is that I have modified the initial comment for these queries to make them work better with Mitch Wheat’s SQLDiagCmd program that is a standalone .NET program to run these queries and automatically capture the results in a nice Excel spreadsheet (which saves you the time and trouble of doing it manually). Mitch also has a version of the program with a UI that is even easier to use…

Many of these queries only work on SQL Server 2008 R2, although some will work on older versions of SQL Server. If you are using an older version of SQL Server, you should use the version of my diagnostic queries for that version of SQL Server.

You should be aware that both Query 47 and Query 51 could take some time to run, depending on the size of your database and the speed of your hardware and storage subsystem.

As always, I welcome any feedback you may have about these queries.

Posted in Diagnostic Queries, SQL Server 2008 R2 | Tagged , | 6 Comments

SQL Server 2012 Diagnostic Information Queries (Feb 2013)

Here is the February 2013 version of my SQL Server 2012 Diagnostic Information Queries, with some minor tweaks and improvements to several of the existing queries. There is also one new query that looks for missing indexes for all databases on the instance.

To go with it is an updated, blank 2012 results spreadsheet, where the tabs in the spreadsheet are labeled and in the same order as the queries. The idea is that you can run these queries one by one, click on the top left square of the results grid, and then right-click and select “Copy with Headers” to select and copy the results of the query and then paste them into the matching tab of the results spreadsheet.

One new feature in this version is that I have modified the initial comment for these queries to make them work better with Mitch Wheat’s SQLDiagCmd program that is a standalone .NET program to run these queries and automatically capture the results in a nice Excel spreadsheet (which saves you the time and trouble of doing it manually).  Now, I need to talk Mitch into making his program into a little WinForms application that is even easier to use…

Many of these queries only work on SQL Server 2012, although some will work on older versions of SQL Server. If you are using an older version of SQL Server, you should use the version of my diagnostic queries for that version of SQL Server.

You should be aware that both Query 52 and Query 56 could take some time to run, depending on the size of your database and the speed of your hardware and storage subsystem.

As always, I welcome any feedback you may have about these queries.

Posted in Diagnostic Queries, SQL Server 2012 | Tagged , | 2 Comments

SQL Server 2008 Service Pack 3 Cumulative Update 9

Microsoft has released SQL Server 2008 Service Pack 3 Cumulative Update 9, which is build 10.00.5829. As you might expect from the build number (which is only one number higher than SQL Server 2008 Service Pack 3 Cumulative Update 8), there are very few fixes in the public fix list. Three to be exact.

There is no corresponding Cumulative Update for SQL Server 2008 RTM, SP1, or SP2, since those service pack levels are retired. SQL Server 2008 RTM was retired on April 13, 2010, SQL Server 2008 SP1 was retired on September 19, 2011, and SQL Server 2008 SP2 was retired on September 17, 2012.

Many people seem to be surprised to hear this, but I see systems on SQL Server 2008 SP1 or older all the time. If you are running SQL Server 2008, you really should be on Service Pack 3 by now.  I would be surprised if Microsoft is going to release a SQL Server 2008 Service Pack 4.

Mainstream support for both SQL Server 2008 and 2008 R2 is still scheduled to end on January 14, 2014.

Posted in SQL Server 2008 | Tagged | Leave a comment

SQL Server 2008 Diagnostic Information Queries (Jan 2013)

Here is the January 2013 version of my SQL Server 2008 Diagnostic Information Queries, with some minor tweaks and improvements to several of the existing queries mainly focusing on collecting some information about whether Change Data Capture (CDC) is enabled. There is also one new query that breaks down overall I/O usage by database.

To go with it is an updated, blank 2008 results spreadsheet, where the tabs in the spreadsheet are labeled and in the same order as the queries. The idea is that you can run these queries one by one, click on the top left square of the results grid, and then right-click and select “Copy with Headers” to select and copy the results of the query and then paste them into the matching tab of the results spreadsheet.

These queries will work on both SQL Server 2008 and SQL Server 2008 R2 (although some of them will only work on SQL Server 2008 R2 SP1 or later). This is indicated in the instructions for each query.

You should be aware that both Query 46 and Query 49 could take some time to run, depending on the size of your database and the speed of your hardware and storage subsystem.

As always, I welcome any feedback you may have about these queries.

Posted in SQL Server 2008, SQL Server 2008 R2 | Tagged , | 2 Comments

SQL Server 2012 Diagnostic Information Queries (Jan 2013)

Here is the January 2013 version of my SQL Server 2012 Diagnostic Information Queries, with some minor tweaks and improvements to several of the existing queries mainly focusing on collecting some information about whether Change Data Capture (CDC) is enabled. There is also one new query that breaks down overall I/O usage by database.

To go with it is an updated, blank 2012 results spreadsheet, where the tabs in the spreadsheet are labeled and in the same order as the queries. The idea is that you can run these queries one by one, click on the top left square of the results grid, and then right-click and select “Copy with Headers” to select and copy the results of the query and then paste them into the matching tab of the results spreadsheet.

Many of these queries only work on SQL Server 2012, although some will work on older versions of SQL Server. If you are using an older version of SQL Server, you should use the version of my diagnostic queries for that version of SQL Server.

You should be aware that both Query 51 and Query 55 could take some time to run, depending on the size of your database and the speed of your hardware and storage subsystem.

As always, I welcome any feedback you may have about these queries.

Posted in SQL Server 2012 | Tagged , | 3 Comments

2012 Blog Statistics in Review

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

About 55,000 tourists visit Liechtenstein every year. This blog was viewed about 400,000 times in 2012. If it were Liechtenstein, it would take about 7 years for that many people to see it. Your blog had more visits than a small country in Europe!

Click here to see the complete report.

Posted in SQL Server 2008 R2 | Leave a comment

SQL Server 2012 Standard Edition Licensing Limits

As you might be aware, SQL Server 2012 Standard Edition has some hardware-related licensing limits that I think should be adjusted in light of the capabilities of modern, commodity server hardware.

As a DBA and consultant, I would like to see everyone running SQL Server 2012 Enterprise Edition. It has many, many truly compelling features that make it absolutely worth the extra licensing cost compared to SQL Server 2012 Standard Edition. Despite this, I recognize that some organizations simply cannot afford these extra licensing costs (even though it is still far more affordable than Oracle licensing).

The first SQL Server 2012 Standard Edition licensing limit is that you are restricted to 64GB of RAM for the Database Engine and 64GB of RAM for SSAS and SSRS. Even if your database server has a much higher amount of RAM than 64GB, it will only be able to use 64GB of RAM for each of these services.

I think that is is a ridiculously low RAM limit, given the fact that DDR3 ECC RAM for servers is currently priced at around $10-$15/GB for 16GB DIMMs. Microsoft is essentially limiting you to using about $1000.00 of RAM if you are using SQL Server 2012 Standard Edition.

Modern, two-socket servers have 24 memory slots, so they can hold 384GB of RAM with these affordable 16GB DIMMs.  Even though you are limited to 64GB of RAM per service per instance, you should strongly consider getting a slightly larger amount, such as 72GB or 96GB, so that you can set your Max Server Memory setting to 65536 (which would be 64GB), and still leave plenty of RAM for the operating system.

This 64GB RAM limit did not exist for SQL Server 2008 Standard Edition, which could use up to the OS limit for RAM. It was first introduced in SQL Server 2008 R2 Standard Edition, and was not changed for SQL Server 2012 Standard Edition. That was a mistake, in my opinion, designed to drive more Enterprise Edition sales.

Windows Server 2012 Standard Edition can use up to 4TB of RAM (unlike Windows Server 2008 R2 Standard Edition, which was limited to 32GB of RAM), so there is even more precedent for not placing artificially low RAM limits on the Standard Editions of Microsoft Server products.

The second hardware-related licensing limit for SQL Server 2012 Standard Edition is that you are limited to the lesser of 16 physical processor cores or four processor sockets, whichever is less. I don’t really have a problem with the four processor socket limit, but I do think that a 16 physical processor core limit is simply too low. A two-socket, AMD Opteron 6200 or 6300 series based system could have 32 physical cores, while a two-socket Intel Xeon E7-2800 series based system could have 20 physical cores.

Of course, you really should not be using any of those processor families for SQL Server 2012 usage, since the Intel Xeon E5-2600 series is far superior for single-threaded performance and would also have a lower core-based licensing cost. It is also likely that the upcoming Intel Xeon E5-2600 v2 series (Ivy Bridge-EP) could have up to ten physical cores per processor, which would put a two-socket server over the 16 physical core limit.

I would really like to see Microsoft eliminate both the RAM limit and the physical core count limit for SQL Server 2012 Standard Edition. The features and advantages of SQL Server 2012 Enterprise Edition are valuable enough to convince people to buy Enterprise Edition when it is appropriate without these artificially low license limits. Microsoft could support this notion by doing a better job of explaining and selling the benefits of Enterprise Edition, with some blog posts and whitepapers.

I would love to hear your thoughts and opinions on this!

Posted in Computer Hardware, Microsoft, SQL Server 2012 | Tagged , | 12 Comments

SQL Server 2012 Diagnostic Information Queries (Dec 2012)

Here is the December 2012 version of my SQL Server 2012 Diagnostic Information Queries, with some minor tweaks and improvements to a couple of the existing queries. There is also one new query at the very end, adapted from my colleague, Erin Stellato.

To go with it is an updated, blank 2012 results spreadsheet, where the tabs in the spreadsheet are labeled and in the same order as the queries. The idea is that you can run these queries one by one, click on the top left square of the results grid, and then right-click and select “Copy with Headers” to select and copy the results of the query and then paste them into the matching tab of the results spreadsheet.

Many of these queries only work on SQL Server 2012, although some will work on older versions of SQL Server. If you are using an older version of SQL Server, you should use the version of my diagnostic queries for that version of SQL Server.

You should be aware that both Query 51 and Query 54 could take some time to run, depending on the size of your database and the speed of your hardware and storage subsystem.

As always, I welcome any feedback you may have about these queries.

Posted in Microsoft, SQL Server 2012 | Tagged , | Leave a comment

SQL Server 2008 Diagnostic Information Queries (Dec 2012)

Here is the December 2012 version of my SQL Server 2008 Diagnostic Information Queries, with some minor tweaks and improvements to a couple of the existing queries. There is also one new query at the very end, adapted from Erin Stellato.

To go with it is an updated, blank 2008 results spreadsheet, where the tabs in the spreadsheet are labeled and in the same order as the queries. The idea is that you can run these queries one by one, click on the top left square of the results grid, and then right-click and select “Copy with Headers” to select and copy the results of the query and then paste them into the matching tab of the results spreadsheet.

These queries will work on both SQL Server 2008 and SQL Server 2008 R2 (although some of them will only work on SQL Server 2008 R2 SP1 or later). This is indicated in the instructions for each query.

You should be aware that both Query 46 and Query 49 could take some time to run, depending on the size of your database and the speed of your hardware and storage subsystem.

Posted in Microsoft, SQL Server 2008, SQL Server 2008 R2 | Tagged , | 3 Comments