Beta 2 of the Database Health Reports has just been released.  The new Beta contains several bug fixes, and several new features.  Here is a breakdown of what is new or changed since the last beta. New Features Added the Memory by Database panel to the Database Overview page. Added the Memory by Database report. Added Unclustered Tables Report. Added the Connections Advisor which is linked to …

Beta 2 of the Database Health Reports Released Read more »

Although clustered indexes are not required, and there are many cases where you should not use a clustered index, quite often clustered indexes can be overlooked when creating a table.  This is actually more likely if you are inheriting a database from someone else who didn’t know enough about indexes.  In these cases adding the right clustered index can dramatically …

Finding tables that don’t have a clustered index. Read more »

Beta 2 of the Database Health Reports will be available in the next 7 to 10 days as I finish it up. There has been a good acceptance of Beta 1 so far, and with feedback here are some of the things included in the next beta. Overall performance tuning, some of the reports run faster now, and some of …

Working on Beta 2 of the Database Health Reports Read more »

In October last year I started work on the Database Health reports project.  It started out as a series of SSRS reports that I released and updated in December 2011 to March 2012.  After that it became clear that the SSRS reports weren’t going to do what I was looking for so I started on the Database Health reports version …

It is finally here. Beta 1 of the Database Health Reports for SQL Server. Read more »

As I get the Database Health project ready to release as a beta, more of the components are coming together.  For instance shown here is the Table Size Advisor which can be accessed from the Disk Space Report. In this example you can quickly see that the Demographics column in the Person table is taking up 13MB or roughtly 88% …

Preview of the Table Size Advisor Read more »

Take the following sample code.    Four similar tables with an INT IDENTITY, BIGINT IDENTITY, and two with UNIQUEIDENTIFIERS, one using newid() and the other with newsequentialid(). Once the tables are created and we insert 100,000 rows into each, they are very similar, but they take up very different amounts of disk space. Using the Database Health Reports application, we …

Should I Use A Unique Identifier As A Primary Key? Read more »

In SQL Server 2012, there was a change to the dynamic management view that reports on the plan cache, so the query has changed. Here are the before and after queries to determine the plan cache size in SQL Server 2012, and prior to SQL Server 2012. SQL 2012 Plan Cache Size Pre-SQL 2012 Plan Cache Size For more details …

TSQL to Determine Plan Cache Size Read more »

As I have been creating the Database Health project over the last couple of months, I have discovered that my favorite part of the whole project is the index defragmentation part of the project.  This has turned out to be more challenging that I originally expected, but a lot more interesting than I expected as well. Yesterday I discovered a …

Index Defragementation and Management Read more »

Originally I implemented the  Database Health Reports as a series of SQL Server Reporting Services reports, which was very handy and easy to create, but hard to distribute in a way that they could be shared and customized to the needs of a project like the Database Health Reports should be. Here is what I have so far, and I think …

Making Progress on the Server Health Re-write Read more »