Rolling upgrade using database mirroring (and a bug in 2008 RTM)

While trawling through the latest 2008 Books Online this morning to answer a question, I noticed a new section that I hadn't seen before, which explains in detail how to perform a rolling upgrade with database mirroring. The link to the MSDN page is and below I've linked to the flowchart from that page.   Books […]

Getting historical deadlock info using extended events

In the TechNet Magazine article I wrote on Advanced Troubleshooting with Extended Events, I mentioned the always-on event session called system_health. Jonathan Kehayias, a fellow MVP and blogging mad-man, posted a great article with SQL Server Central today about how to get historical deadlock graph info from it. His article explains some of the pre-reqs […]

Couple of nasty FILESTREAM bugs fixed in 2008 RTM CU1

Cumulative Update 1 for SQL 2008 RTM contains fixes for two nasty FILESTREAM bugs (among a lot of other bug fixes). The first one concerns restoring a 2008 database from a series of log backups when the database contains FILESTREAM info. It’s possible that a race condition can cause one of the log backups to […]

Easy monitoring of high-severity errors: create Agent alerts

In my previous post today I talked about error 825 and how you should have an Agent alert set up to catch it when it happens. There are two ways you can set up Agent alerts – using SSMS or using the stored-proc sp_add_alert. In a post from April 2008 I showed how to create an […]

A little-known sign of impending doom: error 825

There are two pretty well-known I/O errors – 823, and 824 – but there’s also one called 825 which most DBAs do*not* know about, and definitely should. From SQL Server 2005 onwards, if you ever see an 823 or 824, SQL Server has actually tried that I/O a total of 4 times before it finally […]

Diving in the Caribbean

The first of the long-promised photo posts (with lots of Wikipedia links) – click on photos for larger versions. Over the holidays Kimberly and I went to St. Lucia in the Caribbean for a well-earned and highly-anticipated break – sun, relaxation, and scuba diving for a few weeks. St. Lucia is almost at the far […]

SQL Server 2008 system table map PDF

Microsoft has released a PDF showing all the SQL Server 2008 system tables – very cool but you'll need a big printer to print it out – or go to Kinko's. Download it from Microsoft here.

New whitepaper on tuning Change Data Capture performance

Microsoft’s Steffen Krause has written an excellent whitepaper on Tuning the Performance of Change Data Capture in SQL Server 2008, that I technically reviewed, and it was published late last year. To get an overview of Change Data Capture (CDC) before reading the whitepaper, see the TechNet Magazine article I wrote for the November issue, […]

New whitepaper on database snapshots

Well, it was released a year ago but I only just found out about it last week. The SQL CAT team published a whitepaper last year called Database Snapshot Performance Considerations under I/O-Intensive Workloads. For a variety of workloads and with different numbers of concurrent database snapshots, it covers: How much time does it take to create a […]

Public Speaking: A Primer

It’s become something of a tradition for me to do a Valentine’s Day blog post (the 2008 one about SQL Server blogs is at Wow – so many blogs!) as we don’t do anything special otherwise – I don’t need a “Hallmark Holiday” to tell Kimberly I love her :-). Ahem – well this year I’m […]

Corruption errors: Msg 5242, Level 22

In SQL Server 2000 and before, the symptoms of database corruption would occasionally manifest themselves as asserts, such as: SQL Server Assertion: File: <recbase.cpp>, line=1378 Failed Assertion = 'm_offBeginVar < m_sizeRec'. To reduce the number of assertions being fired by the SQL Engine, my team changed these asserts into real error messages for SQL Server […]

Performance impact of lots of VLFs in the transaction log

One of the things I mentioned in my recent TechNet Magazine article on Understanding Logging and Recovery was the need to manage the transaction log so the number of VLFs (virtual log files) does not get too large (with too large being more than, say, 100 VLFs). Linchi Shea (a fellow MVP) has just posted […]