Due to some Microsoft date changes, the Spring SQL Connections show had to move to the week of April 12th. As a knock-on effect - and believe me, there were a bunch for us! - the public class Immersion Event we're doing in Boston had to move out of that week, and is now two weeks earlier in March. The locations remain the same though. Our Upcoming Events page has all the details and links to the registration sites (don't forget the Early-Bird specials for both!), but in a nutshell, it's:

  • 5-day intense public class on internals, maintenance, performance tuning, disaster recovery with Kimberly and I, March 29 - April 2, Boston
  • Spring SQL Connections, April 12 - 16, Las Vegas

Both events are going to be very cool - hope to see you at one (or both!) of them!

Categories:
Classes | Conferences

My goodness - no sooner are we done with one crazy conference season when planning starts for the next lot!

We've just finalized the line-up for two conferences in the Spring: DevTeach in Toronto and SQL Connections in Las Vegas (changing it's name for this one event to Microsoft SQL Server Conference and Expo).

This is the first time Kimberly and I are doing a DevTeach show - going to be fun presenting to 100% developers. At the show we're doing:

  • A pre-con workshop: Indexing for Performance
  • A post-con workshop: Developers Can't Ignore SQL Server Database Maintenance!
  • 4 sessions:
    • Paul: Tips and Tricks for Proper SQL Server Table Design
    • Paul: Index Fragmentation: What it is and why you need to care
    • Kimberly: Helping the Optimizer Help You!
    • Kimberly: Optimizing Procedural Code

At the Connections show all four of us from SQLskills will be there:

  • A pre-con workshop (Stacia): A 360-Degree View of SQL Server 2008 R2 Business Intelligence
  • A pre-con workshop (Paul & Kimberly): Do you feel the Need for Speed? Tuning for High Performance.
  • A post-con workshop (Bob): Writing SQL Server database applications and stored procedures for best performance
  • *17* sessions:
    • Paul: DBA Mythbusters
    • Paul: Understanding Logging and Recovery in SQL Server
    • Paul: Building the Right Backup Strategy
    • Paul & Kimberly: Follow the Rabbit: Wrap-up Q&A
    • Kimberly: Leveraging Centralized Management Servers in SQL Server 2008
    • Kimberly: SQL Server Covering: Concepts, Concerns, & Costs
    • Kimberly: Statistics: Are they really important?
    • Kimberly: GUIDs: A Gift or a Gremlin?
    • Stacia: Demystifying Analysis Services Stored Procedures
    • Stacia: Exploring the New Reporting Services
    • Stacia: What's DAX?
    • Stacia: Data, Data, Who Owns the Data?
    • Bob: A Database Developer and DBA perspective – LINQ To SQL and Entity Framework vs. Stored Procedures
    • Bob: Visualizing And Extending SQL Server Spatial Data: Maps, Reports, and Analysis
    • Bob: Modeling and Implementing Hierarchies With SQL Server
    • Bob: Complex Event Processing with StreamInsight
    • Bob: Exploring SQL Server Azure Database and Data Tier Applications

Plus we've lined up more of the top speakers in the SQL world (Andrew Kelly, Ross Mistry, Don Kiely, Brian Larson, Craig Utley) to bring you 12 sessions each focused on developer, DBA, and BI topics.

You can see the full abstracts of all our sessions and workshops, along with links to the conference websites, on our Upcoming Events page.

We hope to see you there!

Categories:
Conferences

(Reposting from Kimberly's blog)

At PASS we hung out with Sean McCown and Jen McCown (of MidnightDBA) and chatted... and, despite our better judgement, agreed to do an interview. These aren't overly technical but they are fun!

And, our favorite "travel tip" from the video is to know your plane and check your seat on http://www.seatguru.com/ - we use it religiously when planning our travel.

Enjoy!

Categories:
Conferences | Interviews

We're sitting here in the Las Vegas airport on the way home to Seattle for 3 whole weeks and I've just finished uploading the resources for the SQL Connections conference that ended yesterday.

On our Past Events page I've uploaded zip files for:

  • Our joint pre-con on database maintenance
  • Kimberly's post-con on indexing
  • My session on logging and recovery
  • My session on backup strategy
  • Kimberly's session on covering indexes
  • Kimberly's session on sparse columns and filtered indexes

We had a great week down here in Vegas - lots of very enthusiastic attendees and many (what we call) 'repeat offenders' :-) Saw a couple of great shows too - Cirque du Soleil's Mystere on Monday and Bette Midler last night. I'm not especially a fan of hers, but she was *excellent*.

Looking forward to the next Connections - cheers!

Categories:
Conferences

Today's our rest day here at SQL Connections and one of the things on my list is to post all the resources from our recent events.

On our Past Events page I've uploaded zip files for:

  • Kimberly's 4-day performance tuning class in Melbourne
  • My 4-day maintenance/DR class in Melbourne
  • Kimberly's pre-con at PASS on indexing
  • My post-con at PASS on disaster recovery
  • Kimberly's spotlight session on covering indexes
  • My spotlight session on logging and recovery

Speaking of PASS, what a wonderful conference it was! This year's surprise guest was Twitter - which quite changed the social dynamics of the whole event. I was really looking forward to meeting everyone I've gotten to know (virtually) since getting sucked into Twitter back in April and it was fun seeing how people looked in real life compared to their Twitter avatars. The SQL community has a vibrant Twitter presence, with lots of people (myself and Kimberly included) online and happy to help out answering questions. One of the coolest things we did was to tweet what was going on in each other's workshops, so people could follow along who weren't there. Checkout the #ktprecon and #prpostcon Twitter hash-tags for the resource links and pithy epithets from the workshops. I even managed to heckle Buck Woody in his session while I was at home - remote-heckling!

There were a bunch of events that happened too that others have blogged photos of, including the opening reception Celebrity Quiz Bowl (which Kimberly and I won), the official launch of the MVP Deep Dives charity book (which Kimberly and I edited part of), the Birds of a Feather lunch (where we hosted a table each) and Kilt-Wearing-Wednesday. Sadly, I couldn't procure a kilt to wear but I did show a picture of me wearing a kilt last year at my sister's wedding in Scotland. Maybe next year.

Now we're in Las Vegas for the Fall SQL Connections conference. I'll be posting resources from our workshops and sessions on Friday, while I'm sitting in Kimberly's post-con.

Categories:
Conferences

It's PASS time again in Seattle and we've got a busy week lined up. It's going to be a cavalcade of meeting new people, and in the best tradition of conferences past, I'll do my best to remember most people's names who I met last year but please don't be offended if I don't, give me a prod in the right direction :-) Best bet for having me remember is to have something brightly colored on show: Jason has vivid red hair, Denny has partly bright blue hair, Brent has big green fists, and Thomas has off-color blog posts. My brightly-colored attire will include a tall blonde woman next to me most of the time.

Here's what we have definitely on the schedule so far:

  • Our pre-con workshop on Monday
  • Playing in the welcome reception Quiz Bowl Monday night
  • Birds of a Feather lunch on Tuesday. I'm doing "Chow Down on Corruption" and Kimberly's doing "Kimberly Tripp Covers Indexes (and Lunch)". Our tables are going to be next to each other so that we can heckle. My table will at least have to make it known that our table title is cleverer than hers.
  • My Wednesday morning Spotlight session on Understanding Logging and Recovery
  • Kimberly's Wednesday afternoon Spotlight session on Covering Indexes
  • Our post-con workshop on Friday

And some parties and other frivolity thrown in.

Hope to see you there!

PS Seems like #sqlpass is the Twitter tag for the conference, prepare to be overwhelmed!

PPS If you're speaking for the first time at PASS, checkout my long Valentine's Day blog post about how to present: Public Speaking: A Primer

Categories:
Conferences

We're part-way through the Fall conference season, and in the middle of teaching week 1 of the current Microsoft Certified Master - SQL class. At the weekend we head off to Australia to teach some public classes in Melbourne - last chance to sign up for them!

Here's what we have coming up:

  • October 15-16. Kimberly and I will be teaching a 2-day class "SQL Server 2008: New Features - Updating Your Administrations Skills in Database Infrastructure and Scalability" in Melbourne, Australia
  • October 19-22. I'll be teaching a 4-day class "SQL Server 2005/2008: DB Maintenance and Availability: From Performance to Disaster Recovery" in Melbourne.
  • October 19-22. Kimberly will be teaching a 4-day class "SQL Server 2005/2008: Performance Tuning – From Design to Indexing to Optimizing Procedural Code" in Melbourne.
  • November 2-5. SQL PASS, Seattle: Kimberly and I will be teaching two full-day workshops and a Spotlight Session each.
  • Nobember 9-12: SQL Connections, Las Vegas: Kimberly and I will be teaching two full-day workshops and 5 sessions. Stacia will be teaching 4 sessions on BI.
  • November 5 and 17: Kimberly and I will be teaching a day each of the Microsoft Certified Master - SharePoint class.

You can find more details and links to the various registration sites on our Upcoming Events page.

Hope to see you there!

Categories:
Classes | Conferences

We've finally nailed down the dates for all our Fall classes and conferences around the world. Here's the plan:

  • September 21-25. Kimberly and I will be teaching a week-long Immersion Event in Dublin, Ireland - combining internals, performance tuning, database maintenance and more.
  • September 29-30. Kimberly and I will be presenting a full day of SQL Server sessions at the Microsoft Technology Summit 2009 in Warsaw, Poland
  • October 15-16. Kimberly and I will be teaching a 2-day class "SQL Server 2008: New Features - Updating Your Administrations Skills in Database Infrastructure and Scalability" in Melbourne, Australia
  • October 19-22. I'll be teaching a 4-day class "SQL Server 2005/2008: DB Maintenance and Availability: From Performance to Disaster Recovery" in Melbourne.
  • October 19-22. Kimberly will be teaching a 4-day class "SQL Server 2005/2008: Performance Tuning – From Design to Indexing to Optimizing Procedural Code" in Melbourne.
  • November 2-5. SQL PASS, Seattle: Kimberly and I will be teaching two full-day workshops and a Spotlight Session each.
  • Nobember 9-12: SQL Connections, Las Vegas: Kimberly and I will be teaching two full-day workshops and 5 sessions. Stacia will be teaching 4 sessions on BI.

You can find more details and links to the various registration sites on our Upcoming Events page.

Hope to see you there!

PS And yes, we'll be teaching week 1 of each SQL MCM rotation and a couple of days from each SharePoint MCM rotation through the next year as well.

Categories:
Classes | Conferences

Cool news - the pre/post-con workshops and spotlight sessions acceptance emails came out this week and we're both going to be there. We've booked our hotel all week even though we live 15 miles away in Redmond so we can be party animals too :-)

I could write a long post about why PASS is cool and worth going to, but Brent Ozar (and others) have long posts already. His post is here and it's written in a send-this-to-your-manager kind of way. Enough said. You might even get Kimberly and I to sing our dog songs or Kimberly to do a frog-fish impression.

Here's what we'll be teaching:

Pre-con workshop: SQL Server 2005/2008: Indexing for Performance (Kimberly, but I'll be there too)

  • Indexing is by far the most important aspect to database performance and health. But, do you have the right indexes? Do you have too few, or too many? And, are the indexes the RIGHT indexes? In this workshop we'll cover what makes an index useful and how to create the RIGHT indexes for a variety of different problem scenarios. In addition to looking at which indexes work for what types of queries, we'll round out the day looking at the DMVs that can help us create some of the missing indexes and drop the unused. Primary topics covered: index internals, indexing strategies, statistics and how to tell if your strategies are working! If you want better performance, as well as a more manageable database, this is the place to be - even if you cannot change your schema! (NOTE: The "SQL Server Covering: Concepts, Concerns, & Costs" session during the conference has a small amount of overlap with this workshop but the point of the workshop will be to dive into more of the internals and details of why these decisions are so critical. We will not rediscuss the specific strategies used in the session.)
  • Topics covered: Index Internals, Data Access Patterns, Statistics , Indexing Strategies, How to know if your indexing strategies are working?

Spotlight session: SQL Server Covering: Concepts, Concerns, & Costs (Kimberly)

  • Using indexes to "cover a query" is one of the most important tuning strategies possible in SQL Server. So much so that many of the best indexing performance features target specifically this - covering. We'll look at indexed views (added/improved in SQL Server 7.0 and 2000), INCLUDE (added in SQL Server 2005) and filtered indexes (added in SQL Server 2008). In this session, we'll discuss the pros and cons of covering, the different strategies possible to achieve it - as well as when it's a good idea to consider covering and when it's a must!

Spotlight session: Understanding Logging and Recovery in SQL Server (Paul)

  • Some of the most misunderstood parts of SQL Server are its logging and recovery mechanisms. The fact that the transaction log exists and can cause problems if not managed correctly seems to confound many DBAs. Why is it possible for the transaction log to grow unbounded? Why does it sometimes take so long for the database to come online after a system crash? Why can't logging be turned off completely? Why can't I recover my database properly? Just what is the transaction log and why is it there? In this in-depthsession Paul will unravel the mysteries of the transaction log - it's architecture and behavior under different recovery models- as well as how logging and recovery work in SQL Server. This is essential knowledge you need for understanding how backup, restore, log-shipping, database mirroring, and other technologies work. 

Post-con workshop: Disaster Recovery: Tips, Tricks, and Techniques (Paul & Kimberly)

  • Disasters happen - plain and simple. When disaster strikes a database you're responsible for, are you going to be able recover within the down-time and/or data-loss limits your company requires? This workshop isn't about how to achieve high-availability, it's about how to prevent or overcome the obstacles you're likely to hit when trying to recover from a disaster such as not having the right backups, not having valid backups, or not having any backups! How do you come up with a good and reliable backup strategy? How can you architect a database to allow easier recovery? What can you do to limit the damage a disaster causes? In this demo-heavy workshop, Paul and Kimberly will show you a ton of tips, tricks, and techniques they've learned from years of experience helping customers plan for and recovery from disasters.
  • Topics covered will include backup strategy, effectively using restore, partitioning, disaster prevention, using repair to limit downtime, and a lot more!

We hope to see you there!

PS You can get to the PASS site at http://summit2009.sqlpass.org/.

Categories:
Conferences

Yes, it's that time again (well a little bit earlier than usual). With the Spring SQL Server Connections show coming up next week, its time to start planning for the Fall 2009 show. Once again Kimberly and I will be Co-Chairs of the Conference and we'd like to invite you to submit abstracts for the Fall 2009 SQL Connections conference, to be held in Las Vegas, November 9th - 13th, 2009.

The conference will focus heavily on SQL Server 2008. Abstracts are still welcome on best practices for SQL Server 2005 and how to upgrade and migrate applications from SQL Server 200x to SQL Server 2008. However, we will consider all topics - from design to performance to troubleshooting to architectures to programming. Also, we're likely to closely follow our past conference format with three primary themes/tracks: Infrastructure and Scalability, Programming, and Business Intelligence. You should aim for the intermediate to advanced audience for any SQL Server 2005 materials and for SQL Server 2008 we'll consider any level - especially depending on the newness of the release.

For submitting session abstracts, please use this URL: 
http://www.deeptraining.com/devconnections/abstracts

The tool will be open from Monday 3/16  to midnight EST April 5th, after which we won't accept any abstracts. If you have used this site before and have forgotten your password, you can have your secret word mailed to you. It's better to do this then to create a new account.

Please keep the abstracts under 200 words each and in one paragraph. Please do not use bulleted items or line breaks, and please use a spell-checker. If you have an issue with the site, please follow up with an email to paul@sqlskills.com.

Please create a new speaker record (if you haven't submitted before) and submit at least 3 abstracts; however, it will help your chances of being selected if you submit 5 or 6 abstracts. Please do not submit abstracts for sessions that you have previously presented at the Fall show.

What you will get if selected:
- $500 per conference talk. (Additional compensation for pre/post conference workshops.)
- Coach airfare and hotel stay paid by the conference
- Free admission to all of the co-located conferences
- Speaker party
- The adoration of attendees
- etc.
 
Thanks for your continued support for our SQL Connections conference and we look forward to seeing your bright and shiny *new* abstracts!

Thanks,
Kimberly L. Tripp & Paul S. Randal
SQL Connections Conference Chairs

Categories:
Conferences

This year it looks like we're not going to be involved in TechEd US in May so the SQL Connections show in Orlando in March (21-26) will be the best way to pick up some of our training in the first half of the year. We are planning to do some Immersion events in various locations around the world (including the US) in the second half of 2009, so watch the blog for announcements.

Anyway, at this Connections Kimberly and I are going all-out on indexes - here's what we've got planned:

  • A full-day pre-con workshop on index internals, statistics, and fragmentation (2000, 2005, 2008)
  • A full-day post-con workshop on analyzing your indexing strategy - looking for extra, missing, or unhealthy indexes and dealing with them (2000, 2005, 2008)
  • A session by Kimberly on tuning indexes for various search arguments, joins, and aggregates (i.e. indexing for performance)
  • A session by Kimberly on sparse columns and filtered indexes in SQL Server 2008

And apart from indexing-mania, we'll have sessions on surviving database corruption and effective database maintenance. Our plan is to have AS LITTLE OVERLAP AS POSSIBLE between all these sessions and workshops - that's a lot of material!

Of course, Bob Beauchemin will be there with a plethora of developer-centric topics (including a full-day pre-pre-con on spatial data) and a bunch of other top SQL speakers that we've pulled together to create a great show.

Checkout out our Upcoming Events page for all the abstracts and details on how to register.

Hope to see you there!

Categories:
Classes | Conferences

This blog post describes the demo "2 - NC Indexes" from my Corruption Survival Techniques conference session from various conferences in 2008. The links to the scripts and databases to use are in this blog post.

The aim of this demo is to show that sometimes its just redundant data (i.e. nonclustered indexes) that get corrupted, and so you don't have to do anything that takes the actual data offline - like restoring from a full backup or running one of the repair options (both of which require the database to be in single-user mode).

Let's look at an example. Extract and restore the DemoNCIndex database, and the NCIndexCorruption.sql script. What do we get from running DBCC CHECKDB on the DemoNCIndex database (lines 39-42)?

DBCC CHECKDB (DemoNCIndex) WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO

Msg 8951, Level 16, State 1, Line 1
Table error: table 'Customers' (ID 453576654). Data row does not have a matching index row in the index 'CustomerName' (ID 2). Possible missing or invalid keys for the index row matching:
Msg 8955, Level 16, State 1, Line 1
Data row (1:45:28) identified by (CustomerID = 29) with index values 'LastName = 'Adams' and CustomerID = 29'.
Msg 8951, Level 16, State 1, Line 1
Table error: table 'Customers' (ID 453576654). Data row does not have a matching index row in the index 'CustomerName' (ID 2). Possible missing or invalid keys for the index row matching:
Msg 8955, Level 16, State 1, Line 1
Data row (1:180:164) identified by (CustomerID = 2118) with index values 'LastName = 'Adams' and CustomerID = 2118'.

<snip - removed for brevity>

Msg 8952, Level 16, State 1, Line 1
Table error: table 'Customers' (ID 453576654). Index row in index 'CustomerName' (ID 2) does not match any data row. Possible extra or invalid keys for:
Msg 8956, Level 16, State 1, Line 1
Index row (1:24482:16) with values (LastName = 'Andersen' and CustomerID = 18718) pointing to the data row identified by (CustomerID = 18718).
Msg 8952, Level 16, State 1, Line 1
Table error: table 'Customers' (ID 453576654). Index row in index 'CustomerName' (ID 2) does not match any data row. Possible extra or invalid keys for:
Msg 8956, Level 16, State 1, Line 1
Index row (1:24482:127) with values (LastName = 'Arthur' and CustomerID = 9758) pointing to the data row identified by (CustomerID = 9758).
CHECKDB found 0 allocation errors and 26 consistency errors in table 'Customers' (object ID 453576654).
CHECKDB found 0 allocation errors and 26 consistency errors in database 'DemoNCIndex'
repair_rebuild is the minimum repair level for the errors found by DBCC CHECKDB (DemoNCIndex).
 

Lots of errors. Now, in this example there are only 26 errors, but in cases where there are hundreds of errors it can be really hard to tell whether all the corruptions are in nonclustered indexes (i.e. indexes with IDs > 1). Luckily, there's an undocumented option to all the DBCC CHECK* commands - WITH TABLERESULTS. The option is undocumented because the output can change from release to release, but basically this converts the DBCC output into tabular form. Try running lines 48-50 in the script and you'll see what I mean. One of the columns in the output is IndexId - so you can easily see whether all the errors are in nonclustered indexes. In this case, they are, and all in one index of the Customers table.

You could run lines 55-57 of the script to prove to yourself that repairs can't be run online, and then realize that we can address the problem without having to run repair or restore. First off we need to figure out the name of the index to fix - index ID 2 of the Customers table. Lines 77-80 run sp_HelpIndex on the table (although I should really be using Kimberly's sp_HelpIndex2):

USE DemoNCIndex
GO
EXEC sp_HelpIndex 'Customers';
GO

index_name     index_description                                   index_keys
-------------- --------------------------------------------------- ------------
CustomerName   nonclustered located on PRIMARY                     LastName
CustomerPK     clustered, unique, primary key located on PRIMARY   CustomerID

The nonclustered index is called CustomerName. Plug in the index name to line 82, then try fixing the index by doing an online index rebuild, and run DBCC CHECKDB afterwards (lines 82-89). The corruption hasn't been fixed! Online index rebuild reads the old index to build the new one so the new index has the same missing rows as the old one. We need to do an offline index rebuild - with lines 110-115. After the last DBCC CHECKDB, the index is fixed up. Now, on SQL Server 2008, you may or may not get a query plan for the index rebuild that doesn't use the old index, because the query optimizer has some more plan choices available to it - so on SQL Server 2008 you may need to do an actual drop and create of the broken index (carefully, if its enforcing a constraint).

So - just because DBCC CHECKDB reports a ton of errors, that doesn't necessarily mean that the database needs to be taken (essentially) offline to repair it - check through the errors to see if it's just nonclustered indexes that are affected.

For those of you who couldn't make it to a conference this year where I presented my Corruption Survival Techniques session, the folks at TechEd EMEA have just posted an 80 minute long video of the presentation I did in Barcelona in early November. It walks through I/O errors, what CHECKDB does, how it works, how to run it, CHECKDB FAQ, how to interpret the output, choosing between repair and restore and has a bunch of demos of recovering from corruptions. Lots of fun stuff!

The video is available at http://www.microsoft.com/emea/teched2008/itpro/tv/default.aspx?vid=78. The accompanying scripts and corrupt databases are all posted on our website - see this blog post for details.

Enjoy!

This blog post describes the demo "1 - Fatal Errors" from my Corruption Survival Techniques conference session from various conferences in 2008. The links to the scripts and databases to use are in this blog post.

The aim of this demo is to show that sometimes a database is so corrupt that DBCC CHECKDB just cannot run on it. In that case, there's no way to force DBCC CHECKDB to get past the fatal corruption and so there's no way to run a repair either - you're looking at restoring from a backup or at worst, extracting as much data as possible into a new database.

Let's look at a couple of examples. Extract and restore the DemoFatalCorruption1 and DemoFatalCorruption2 databases, and the FatalErrors.sql script. What do we get from running DBCC CHECKDB on DemoFatalCorruption1 (lines 47-49 in the script)?

DBCC CHECKDB (DemoFatalCorruption1)
WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO

Msg 8928, Level 16, State 6, Line 1
Object ID 0, index ID -1, partition ID 0, alloc unit ID 0 (type Unknown): Page (1:71) could not be processed. See other errors for details.
CHECKDB found 1 allocation errors and 0 consistency errors not associated with any single object.
Msg 8906, Level 16, State 1, Line 1
Page (1:19) in database ID 8 is allocated in the SGAM (1:3) and PFS (1:1), but was not allocated in any IAM. PFS flags 'MIXED_EXT ALLOCATED 0_PCT_FULL'.
Msg 2575, Level 16, State 1, Line 1
The Index Allocation Map (IAM) page (1:71) is pointed to by the next pointer of IAM page (0:0) in object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), but it was not detected in the scan.
Msg 7965, Level 16, State 2, Line 1
Table error: Could not check object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data) due to invalid allocation (IAM) page(s).
Msg 8906, Level 16, State 1, Line 1
Page (1:71) in database ID 8 is allocated in the SGAM (1:3) and PFS (1:1), but was not allocated in any IAM. PFS flags 'IAM_PG MIXED_EXT ALLOCATED 0_PCT_FULL'.
Msg 8939, Level 16, State 5, Line 1
Table error: Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), page (1:71). Test (m_headerVersion == HEADER_7_0) failed. Values are 0 and 1.
Msg 8939, Level 16, State 6, Line 1
Table error: Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), page (1:71). Test ((m_type >= DATA_PAGE && m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level == BASIC_HEADER)) failed. Values are 0 and 0.
Msg 8939, Level 16, State 5, Line 1
Table error: Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), page (1:71). Test (m_headerVersion == HEADER_7_0) failed. Values are 0 and 1.
Msg 8939, Level 16, State 6, Line 1
Table error: Object ID 15, index ID 1, partition ID 983040, alloc unit ID 983040 (type In-row data), page (1:71). Test ((m_type >= DATA_PAGE && m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level == BASIC_HEADER)) failed. Values are 0 and 0.
CHECKDB found 5 allocation errors and 3 consistency errors in table 'sys.syshobts' (object ID 15).
Msg 7995, Level 16, State 1, Line 1
Database 'DemoFatalCorruption1': consistency errors in system catalogs prevent further DBCC checkdb processing.
CHECKDB found 0 allocation errors and 1 consistency errors in table 'ALLOCATION' (object ID 99).
CHECKDB found 6 allocation errors and 4 consistency errors in database 'DemoFatalCorruption1'.

A bunch of errors that look like regular DBCC CHECKDB output - but if you look carefully near the end of the output you'll see error 7995 stating that the system catalogs are so corrupt that DBCC CHECKDB can't continue. Notice also that there's nothing at the end of the output stating what the minimum repair level is to fix the errors - because repair cannot be run on this database.

The second example is even worse (running lines 53-55 in the script):

DBCC CHECKDB (DemoFatalCorruption2)
WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO

Msg 211, Level 23, State 51, Line 1
Possible schema corruption. Run DBCC CHECKCATALOG.

In this case, the corruption is so bad that DBCC CHECKDB didn't even get a chance to terminate gracefully - the metadata subsystem in the Query Processor just blew away the whole command. Running DBCC CHECKCATALOG as the error message states doesn't do any better - it just prints the same error! (I didn't write that error message Wink)

So - just because DBCC CHECKDB completes, doesn't always mean it completes successfully. Make sure you always check the output.

While we were at PASS we hooked up with Eric Ostrowski from TechNet Radio to do an interview. Eric's compiled a bunch of interviews from PASS into a 36 minute broadcast which is now live. Our section starts about 26 minutes in and runs to the end (but if you have time its worth listening to the whole broadcast). We don't touch on anything technical but topics covered include:

  • Kimberly's sheep and Highland cow fetish from our Scotland trip
  • The SQL Server 2008 Internals book
  • The "MVP book" that's coming up
  • Our new partner company in Australia
  • My famous "Naked Tour" of Australia in 2007 (which leaves Eric speechless Embarassed)

We're both going to be recording more in-depth interviews with Eric over the next month or so too.

The links for this interview are:

Enjoy!

Categories:
Conferences | Interviews

This blog post explains the demo scripts and databases I've posted to cover all the Corruption Survival Techniques and DBCC CHECKDB sessions I've presented at conferences this year. There are two zip files you need to download: the example corrupt databases (36-MB zip) and the demo scripts. These are also both available through our past events pages.

The databases zip contains the following databases:

  • DemoDataPurity
    • 192-MB SQL Server 2005 database with a single 2570 (data purity) error
  • DemoFatalCorruption1
    • 1-MB SQL Server 2005 database with a corrupt system table (that allows CHECKDB to complete)
  • DemoFatalCorruption2
    • 1-MB SQL Server 2005 database with a corrupt system table (that terminates CHECKDB)
  • DemoNCIndex
    • 192-MB SQL Server 2005 database with a bunch of nonclustered index corruptions
  • DemoRestoreOrRepair
    • 1-MB SQL Server 2005 database with a page checksum failure (in fact a zero'd out page)
  • DemoCorruptMetadata
    • 1-MB SQL Server *2000* database with corrupt syscolumns table

The scripts zip contains the following directories:

  • 1 - Fatal Errors
    • This makes use of the DemoFatalCorruption1 and DemoFatalCorruption2 databases. The FatalErrors.sql script has the steps to follow and see this blog post for a complete walk-through.
  • 2 - NC Indexes
    • This makes use of the DemoNCIndex database. The NCIndexCorruption.sql script has the steps to follow and see this blog post for a complete walk-through.
  • 3 - Data Purity
    • This makes use of the DemoDataPurity database. The DataPurityCorruption.sql script has the steps to follow. I'll blog more details on this script sometime in the next week (and then update this post).
  • 4 - Metadata
    • This makes use of the DemoCorruptMetadata database. The CorruptMetadata.sql script has the steps to follow and see this blog post for a complete walk-through.
  • 5 - Restore or Repair
    • This makes use of the DemoRestoreOrRepair database. There's a setup script (01CreateRestoreOrRepair.sql) and two demo scripts - FixUsingPageRestore.sql and FixUsingRepair.sql. I'll blog more details on these scripts sometime in the next week (and then update this post).
  • 6 - Suspect Database
    • This demo doesn't come with a corrupt database - you create your own one. The SuspectDatabase.sql script has the steps to follow and see this blog post for a complete walk-through.

Enjoy!

Wow - that was a bit of a wild ride! Another conference season is over and we're in the wind down to vacation time - woooo!

This has been our best set of conferences yet - if you haven't been following the blog, in the last 5 weeks, starting out Monday 10/20, we:

  • Delivered 5 days of lectures for Microsoft (the whole first week of the Microsoft Certified Master - Database)
  • Then flew to Vienna and delivered the equivalent of 7 days of lectures at our customer site in Vienna (we did 3 days together and then 2 days separated (with different teams))
  • Then flew to Barcelona and delivered 5 sessions and 4 ILLs at TechEd EMEA in Barcelona (my corruption session was the #2 highest rated of the whole conference and Kimberly had #5 and #7, and our ILLs were #1, #2, #3, #10)
  • Then flew to Las Vegas on Saturday and delivered 2 full day workshops on Sunday and Monday, plus 4 sessions at SQL Connections in Las Vegas (the conference we Co-Chair)
  • Then flew home and delivered a full day workshop and 2 sessions at PASS, plus Kimberly was on the Women in Technology panel (actually the best one I've attended so far) 

Although its Thanksgiving here in the US this week, Kimberly's teaching on campus for a couple of days, then flying to Ireland at the weekend for four days teaching next week, while I'm teaching 5 days on campus for Microsoft. THEN we're almost done - just got to finish up our book chapters for the SQL Server 2008 Internals book, write another TechNet Magazine article, and finished recording all the 2008 Jumpstart content!

This year we've been just a little busy, which is why its taken us longer then usual to post all our demo scripts - BUT they're all now posted on the past events page.

If you picked up any of our DVDs at any of the conferences (sorry, they're only available to conference/class attendees), checkout Kimberly's post from yesterday which has a bunch of instructions.

Later today I'll do another post which explains all my corruption scripts and databases - stay tuned!

Categories:
Conferences

At the last Connections conference in April, the conference organizers tapped a bunch of speakers for interviews, articles, and other content to put into a free "newsletter" called MyDevConnections, and now it's finally available. It covers all the Connections conferences, so isn't just limited to SQL Server. As far as SQL is concerned, Kimberly and I wrote an article about our favorite SQL Server 2008 features (data compression and filtered indexes, respectively), and Ross Mistry wrote an article on hardening a SQL Server 2005 installation. There's also an extract from a Women in Technology interview that Kimberly took part in. Overall there's 84 pages of content in the PDF, with some adverts for the Connections shows (obviously).

Check it out at http://www.devconnections.com/mydevconnections/S08_DevOnlineMag_Web.pdf

Yes, it's that time again (well a little bit earlier than usual). With the Fall SQL Server Connections show coming up soon, its time to start planning for the Spring 2009 show. Once again Kimberly and I will be Co-Chairs of the Conference and we'd like to invite you to submit abstracts for the Spring 2009 SQL Connections conference, to be held in Orlando, March 22nd-26th, 2009.

The conference will focus heavily on SQL Server 2008. Abstracts are still welcome on best practices for SQL Server 2005 and how to upgrade and migrate applications from SQL Server 200x to SQL Server 2008. However, we will consider all topics - from design to performance to troubleshooting to architectures to programming. Also, we're likely to closely follow our past conference format with three primary themes/tracks: Infrastructure and Scalability, Programming, and Business Intelligence. You should aim for the intermediate to advanced audience for any SQL Server 2005 materials and for SQL Server 2008 we'll consider any level - especially depending on the newness of the release.

Note: You will not be able to speak at a DevConnections show if you are also presenting at a competitor’s show, in the same state, within 30 days of the DevConnections show. To be more specific, if you wish to speak at SQL Connections or any other DevConnections show next Spring in Orlando, you are precluded from speaking at any competing conferences in the state of Florida between February 22nd, 2009 and April 26th, 2009.

For submitting session abstracts, please use this URL: 
http://www.deeptraining.com/devconnections/abstracts

The tool will be open from August 15th to midnight EST September 6th, after which we won't accept any abstracts. If you have used this site before and have forgotten your password, you can have your secret word mailed to you. It's better to do this then to create a new account.

Please keep the abstracts under 200 words each and in one paragraph. Please do not use bulleted items or line breaks, and please use a spell-checker. If you have an issue with the site, please follow up with an email to paul@sqlskills.com.

Please create a new speaker record (if you haven't submitted before) and submit at least 3 abstracts; however, it will help your chances of being selected if you submit 5 or 6 abstracts. Note: if you submit 2 abstracts or less you will not be chosen.

What you will get if selected:
- $500 per conference talk. (Additional compensation for pre/post conference workshops.)
- Coach airfare and hotel stay paid by the conference
- Free admission to all of the co-located conferences
- Speaker party
- The adoration of attendees
- etc.
 
Thanks for your continued support for our SQL Connections conference and we look forward to seeing your bright and shiny *new* abstracts!

Thanks,
Kimberly L. Tripp & Paul S. Randal
SQL Connections Conference Chairs

Categories:
Conferences

While we were at TechEd in June, Kimberly and I participated in an hour-long discussion panel (Leveraging SQL Server Technologies to Build a Solid High-Availability Strategy) that was video-taped by the TechEd Online folks. It's now been edited and is available for download/viewing. We cover everything from requirements analysis to technology details in SQL Server 2008. The other panel members were Satya Jayanty, Allan Hirt, Kevin Farlee, and Amit Bansal.

You can browse the various online videos at http://technet.microsoft.com/en-us/events/teched/cc561184.aspx or go straight to the panel discussion video here.

Enjoy!

September, October, and November are going to be a whirlwind this year - after 3 weeks in the UK and Ireland in September, teaching and the San Francisco Power Workshop in October, we have three back-to-back conference weeks in Barcelona, Las Vegas, and back to Seattle! Hey - who booked that schedule?!?!?! Well, at least it helps us keep our top frequent-flyer status on United :-)

Here's the line-up - see our Upcoming Events page for all the abstracts (including those from Bob Beauchemin and Stacia Misner too).

TechEd EMEA IT Pro, November 3-7, Barcelona, Spain

  • We're still working with the TechEd team to finalize the content we'll be delivering but it's looking like the same three sessions from TechEd US, plus a bunch of new ones and Instructor-Led-Labs
  • Sessions (at least):
    • Are Your Indexing Strategies Working?
    • Corruption Survival Techniques: From Detection to Recovery
    • Essential Database Maintenance

SQL Server Connections Fall, November 9-14, Las Vegas, USA

  • This is the second of the twice-yearly SQL Connections conferences that Kimberly and I Co-Chair
  • Workshops:
    • November 9: Pre-pre-con: Database Best Practices for the Involuntary DBA
    • November 10: Pre-con: Relational Data Warehousing: Leveraging Key Features of SQL Server 2005/2008
  • Sessions:
    • Index Internals and Usage
    • Essential Database Maintenance
    • DBCC CHECKDB: The Definitive Guide
    • Follow the Rabbit: Interactive Q&A on Database Maintenance

PASS Community Summit 2008, November 17-21, Seattle, USA

  • As unbelievable as this may be, I've *never* been to PASS before, even in the few times it was in Seattle - something always conflicted. Kimberly hasn't been since 2005 so it'll be cool for us both to be there this year.
  • Workshop:
    • November 18: Database Maintenance: From Planning to Practice to Post-Mortem
  • Spotlight Session:
    • Corruption Survival Techniques: From Detection to Recovery

Categories:
Classes | Conferences

People have been complaining that I've stopped blogging so much - vacation folks, vacation! Today I've got a few class and conference posts to get through and then I'll get back to the technical posts.

We're doing a 2.5 day public class based on the SQL Server 2008 material we developed earlier this year. This will be part of a larger conference being hosted by Dev Connections in San Francisco, USA. Our workshop will run October 6th through 8th.

You can register and get more details at http://www.devconnections.com/SFWorkshops/default.asp?s=127.

Here's the abstract:

SQL Server 2008 offers an impressive array of capabilities for professional developers that build upon key innovations introduced in SQL Server 2005. The use of many of these will have manageability and infrastructure implications for a database—and hence the DBA! There are also enhancements to existing high-availability technologies, plus a variety of significant new tools to aid in managing performance, scalability, administration, and troubleshooting. This workshop helps you understand how to exploit the new toolset and how to manage a database that makes use of the new features in SQL Server 2008. The multi-day format of this event allows us to explore each feature in more detail, with more in-depth demonstrations and labs.

Topics covered include:

  • Availability Enhancements
    • Database Mirroring
    • Backup Compression
    • Peer-to-Peer Replication
  • Security Enhancements
    • Transparent Data Encryption
    • Extensible Key Management
    • All Actions Audited
  • Policy-Based Management and Multi-Server Administration
  • Troubleshooting and Throttling
    • Resource Governor
    • Extended Events
  • New Development Technologies
    • Spatial Indexes
    • Sparse Columns
    • Filtered Indexes and Statistics
    • Change Tracking and Change Data Capture
    • FILESTREAM
  • Performance Data Collection
  • Scalability Enhancements
    • Data Compression
    • Partition-Level Lock Escalation

This workshop runs Oct 6 (9am - 4pm), Oct 7 (9am - 4pm), Oct 8 (9am - 12pm).

TechEd US is done for another year! As I mentioned before, we did a lot of stuff but still found time to chill by the pool a few times in the Speaker Hotel. This was my first US TechEd since leaving Microsoft last year so it was quite interesting seeing the organizational side of things from the outside. I was particularly pleased that my new Surviving Corruption - From Detection To Resolution session clinched a prestigious top-10 rating (#6) for the whole conference - look out for it at all the other conferences I'll be at this year (next post today...)

Edit: Forgot to say - thanks to all those in the Olympia, WA User Group who came out yesterday to see us present the Surviving Corruption session!

We've already started posting scripts from our session demos (see the Past Conferences page) and I'm blogging detailed walkthroughs of my demos from the corruption session in my CHECKDB From Every Angle series. The online panel we did hasn't been released yet on the TechEd Online site - I'll blog when it is.

Now we're off for a couple of weeks of real vacation - flying, diving, bird-watching, and best of all, not working!

I'll leave you with my usual conference wrap-up... thanks to Carlos Santillana for the photos!

Categories:
Conferences

Today I presented my brand new session Surviving Corruption: From Detection to Recovery at TechEd. I had a lot of fun putting together the demos, presenting the session, and talking to people afterwards. During the session, I promised to blog each of the demos so that everyone can run through them - here's the first one.

On SQL 2000, it was pretty easy to get into the system tables and manually change them - all you had to do was:

EXEC sp_configure 'allow updates', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO

And then you could insert, update, and delete whatever you wanted in the all the system tables, including the critical three - sysindexes, sysobjects, and syscolumns. The problem was that sometimes people actually did this and messed things up - for instance, by manually deleting an object from sysobjects, but leaving around all the other info about the object - such as indexes and columns. DBCC CHECKCATALOG in SQL 2000 would find this, but DBCC CHECKDB would not - as it didn't run the DBCC CHECKCATALOG code - any most people do not run DBCC CHECKCATALOG at all. Many times now, I've seen databases upgraded to 2005 and suddenly DBCC CHECKDB is reporting metadata corruption errors - all because someone had manually changed the system tables on 2000, and I changed DBCC CHECKDB in 2005 to include the DBCC CHECKCATALOG checks.

This demo is all about that. I created a 2000 database, manually deleted a row in sysobjects and then upgraded the database to 2005. The corrupt database is available in a zip file - DemoCorruptMetadata.zip. If you unzip it into a folder C:\SQLskills then you can attach it using:

RESTORE DATABASE DemoCorruptMetadata FROM DISK = 'C:\SQLskills\DemoCorruptMetadata.bak'
   
WITH MOVE 'DemoCorruptMetadata' TO 'C:\SQLskills\DemoCorruptMetadata.mdf',
   
MOVE 'DemoCorruptMetadata_log' TO 'C:\SQLskills\DemoCorruptMetadata_log.ldf',
   
REPLACE;
GO

So what does the corruption look like on 2005?

DBCC CHECKDB (DemoCorruptMetadata) WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO
Msg 8992, Level 16, State 1, Line 1
Check Catalog Msg 3853, State 1: Attribute (object_id=1977058079) of row (object_id=1977058079,column_id=1) in sys.columns does not have a matching row (object_id=1977058079) in sys.objects.
Msg 8992, Level 16, State 1, Line 1
Check Catalog Msg 3853, State 1: Attribute (object_id=1977058079) of row (object_id=1977058079,column_id=2) in sys.columns does not have a matching row (object_id=1977058079) in sys.objects.
CHECKDB found 0 allocation errors and 2 consistency errors not associated with any single object.
CHECKDB found 0 allocation errors and 2 consistency errors in database 'DemoCorruptMetadata'.

This is what we expect. Notice that there's no recommended repair level at the end of the output - this is because CHECKDB can't repair metadata corruptions. We can't fix this with a backup - unless we have a backup from 2000 from before the manual delete in the system tables. To fix this we'd need to go back to 2000, fix the corruption, and then upgrade again - usually not feasible.

Instead, we're going to fix it by manually altering the system tables in 2005 - something that's purportedly not possible. First let's see what tables there are that could include column information (remembering that the system catalogs were completely rewritten between 2000 and 2005):

SELECT [name] FROM DemoCorruptMetadata.sys.objects WHERE [name] LIKE '%col%';
GO

name
------------------
sysrowsetcolumns
syshobtcolumns
syscolpars
sysiscols

I know that sysrowsetcolumns and syshobtcolumns are involved at low-levels of the Storage Engine and don't contain relational metadata, so let's try syscolpars. I want to see what columns there are to see if one of the looks like an object ID, and another looks like a column ID. This query will just return the table columns, with no rows (because the condition 1=0 is always false:

SELECT * FROM DemoCorruptMetadata.sys.syscolpars WHERE 1 = 0;
GO

Msg 208, Level 16, State 1, Line 1
Invalid object name 'DemoCorruptMetadata.sys.syscolpars'.

I can't bind to internal system tables in 2005. But - I can bind to internal system tables using the Dedicated Admind Connection (or DAC for short). This is documented in Books Online at http://msdn.microsoft.com/en-us/library/ms179503.aspx. You can get to the DAC through SQLCMD using the /A switch. So - assuming I'm now connected through the DAC, I'll try that command again:

C:\Documents and Settings\paul>sqlcmd /A
1> USE DemoCorruptMetadata;
2> GO
Changed database context to 'DemoCorruptMetadata'.
1> SELECT * FROM sys.syscolpars WHERE 1=0;
2> GO
id          number colid       name

xtype utype       length prec scale collationid status      maxinrow xmlns
 dflt        chk         idtval

----------- ------ ----------- -------------------------------------------------
-------------------------------------------------------------------------------
----- ----------- ------ ---- ----- ----------- ----------- -------- -----------
 ----------- ----------- -------------------------------------------------------
-----------

(0 rows affected)
1>

This looks like the table. Now I'll query against it using the object ID from the original corruption message:

1> SELECT colid, name FROM sys.syscolpars WHERE id = 1977058079;
2> GO
colid       name
----------- --------------------------------------------------------------------
------------------------------------------------------------
          1 SalesID
         
2 CustomerID
(2 rows affected)
1>

Cool. So I'll try deleting the orphaned columns:

1> DELETE FROM sys.syscolpars WHERE id = 1977058079;
2> GO
Msg 259, Level 16, State 1, Server ROADRUNNERPR, Line 1
Ad hoc updates to system catalogs are not allowed.
1>

Hmm. And it doesn't help if I set 'allow updates' to 1, or try putting the database into single-user mode.

There IS a way though. You can put the SERVER into single-user mode, then connect with the DAC and you can then update the system tables. This particular twist on using the DAC isn't documented anywhere except in an MSDN forum thread answered by someone from Microsoft (see here).

BEWARE (if I could put little flashing lights around this too then I would...) that this is undocumented and unsupported - misuse will lead to unrepairable corruption of your databases.

The sequence of events to follow is:

  • make a backup of the database just in case something goes wrong
  • shutdown the server
  • go to the binaries directory (e.g. C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn) and start the server in single-user mode using 'sqlservr -m'
  • connect back in using SQLCMD /A, and run the deleta again. This time it will work, but will give an error about metadata cache consistency:

C:\Documents and Settings\paul>sqlcmd /A
1> USE DemoCorruptMetadata;
2> GO
Changed database context to 'DemoCorruptMetadata'.
1> DELETE FROM sys.syscolpars WHERE id = 1977058079;
2> GO

(2 rows affected)
Warning: System table ID 41 has been updated directly in database ID 12 and cache coherence may not have been maintained. SQL Server should be restarted.
1>

  • The system table has been updated, but the in-memory cache of metadata is now out-of-sync with the system tables. So, shutdown the server again as the message suggests and restart it normally
  • run CHECKDB again and you'll see the corruption has been fixed.

Hope this helps some of you. Watch this space for the next demo from TechEd of repairing corruption when no backup is available.

That time has rolled around again and we're flying down to Orlando for TechEd US tomorrow - my first US TechEd since I left Microsoft. We're doing a lot of stuff this year - here's our schedule if you're going to be there:

Monday

  • Full day pre-con seminar: SQL Server 2008 Overview for DBAs

Tuesday

  • 13.15 - 14.30 (Room N230) DAT354 Are Your Indexing Strategies Working?
  • 15.00 - 16.00 (TechEd Online Stage) Panel: Leveraging SQL Server Technologies to Build a Solid High-Availability Strategy
  • 16.00 - 18.00 DAT track booth

Wednesday

  • 10.15 - 11.30 (Room N220D) DAT375 Corruption Survival Techniques: From Detection to Recovery
  • 11.30 - 14.45 DAT track booth
  • 15.00 - 16.00 Blogger's Lounge

Thursday

  • 10.15 - 11.30 (Room S230E) DAT363 Essential Database Maintenance
  • 11.45 - 13.00 Speader Idol judging
  • 14.30 - 18.00 DAT track booth

Hopefully a bunch of you will stop by and say hi - I'm looking forward to seeing some familiar faces and some new ones! I'll try to blog while I'm there on questions I get and I've got some cool demos for the corruption session that I'll be blogging about over the summer.

See you next week...

Categories:
Conferences

Today's the final day of SQL Connections proper (tomorrow is post-conference workshops). We've really enjoyed the conference (as usual!) and it's been a blast answering everyone's questions. We'll be posting resources over the next week or so (most likely on Kimberly's blog) and we did a video interview with our good friends Richard and Carl (from DotNetRocks) which should be available for download soon.

We spoke with many conference attendees and one request was the ability to give online feedback. While the conference itself doesn't have that ability (yet), we'd love to hear any feedback you have about the conference - the good, the bad, and the ugly! As we're the co-chairs of the SQL conference, all the feedback comes to us anyway, and we'll pass on any non-SQL feedback to the Connections organizers.

So - send feedback email to me with anything you'd like to share. If it's about a specific session/speaker/topic, please try to give as much detail as you can. All feedback will be in strictest confidence.

Thanks!

Categories:
Conferences

(Cross-posted on Paul and Kimberly's blogs)

With the Spring SQL Server Connections show coming up next month, its time to start planning for the Fall show. Once again Kimberly and I will be Co-Chairs of the Conference and we'd like to invite you to submit abstracts for the Fall 2008 SQL Connections conference, to be held in Las Vegas, November 10-14th, 2008.

The conference will take place shortly after the SQL Server 2008 launch (when it actually RTMs, not the 'launch' that happened February 27th), and will focus heavily on SQL Server 2008. Abstracts are still welcome on best practices for SQL Server 2005 and how to upgrade and migrate applications from SQL Server 200x to SQL Server 2008. However, we will consider all topics - from design to performance to troubleshooting to architectures to programming. Also, we're likely to closely follow our past conference format with three primary themes/tracks: Infrastructure and Scalability, Programming, and Business Intelligence. You should aim for the intermediate to advanced audience for any SQL Server 2005 materials and for SQL Server 2008 we'll consider any level - especially depending on the newness of the release.

Note: You will not be able to speak at a DevConnections show if you are also presenting at a competitor’s show, in the same state, within 30 days of the DevConnections show. To be more specific, if you wish to speak at SQL Connections or any other DevConnections show this Fall in Las Vegas, you are precluded from speaking at any competing conferences in the state of Nevada between October 10, 2008 and December 13, 2008.

For submitting session abstracts, please use this URL:  http://www.deeptraining.com/devconnections/abstracts

The tool will be open from March 10th to midnight EST April 9th, after which we won't accept any abstracts. If you have used this site before and have forgotten your password, you can have your secret word mailed to you. It's better to do this then to create a new account. Please keep the abstracts under 200 words each and in one paragraph. Please do not use bulleted items or line breaks, and please use a spell-checker. If you have an issue with the site, please follow up with an email to paul@sqlskills.com.

Please create a new speaker record (if you haven't submitted before) and submit at least 3 abstracts; however, it will help your chances of being selected if you submit 5 or 6 abstracts. There's one slight change for this conference only - we won't have a fourth track for speakers just delivering a single conference session, so if you only submit a single session abstract, you're unlikely to be picked.

What you will get if selected:

  • $500 per conference talk. (Additional compensation for pre/post conference workshops.)
  • Coach airfare and hotel stay paid by the conference
  • Free admission to all of the co-located conferences
  • Speaker party
  • The adoration of attendees :-)
  • etc.

Thanks for your continued support for our SQL Connections conference and we look forward to seeing your bright and shiny new abstracts!

Thanks,
Kimberly L. Tripp & Paul S. Randal
SQL Connections Conference Chairs

SQL Connections is in less than two months now and our pre-con and post-con workshops are filling up fast - checkout my previous blog post here for the full list of what we're presenting.

Now we've finalized our TechEd US sessions with Microsoft and can let you all know that we're going to be there as usual! This time Kimberly and I are doing a joint pre-con workshop on SQL Server 2008 - so if you can only make it to one conference this year, you can choose TechEd or SQL Connections and still catch our 2008 workshop plus other sessions :-)

There's a catch though - this year TechEd US has split into two weeks (to mirror what TechEd Europe has been doing for a while). The first week is for Developers and the second week is for IT Pros. We'll be at the IT Pro week in Orlando, June 10-13. Here's what Kimberly and I are doing (all jointly presented this year):

Pre-Conference Workshop: PRC21 Microsoft SQL Server 2008 Overview for Database Professionals (Monday 6/9)

SQL Server 2008 offers an impressive array of capabilities for professional developers that build upon key innovations introduced in SQL Server 2005. The use of many of these will have manageability and infrastructure implications for a database—and hence the DBA! There are also enhancements to existing high-availability technologies, plus a variety of new tools to aid in managing performance, scalability, administration, and troubleshooting. This workshop helps you understand how to exploit the new toolset and how to manage a database that makes use of the new features in SQL Server 2008. Come to this workshop so your developers don't surprise you with new demands once your company upgrades!

Topics covered include:

  • Availability Enhancements (Database Mirroring, Backup Compression, Peer-to-Peer Replication)
  • Security Enhancements (Transparent Data Encryption, Extensible Key Management, All Actions Audited)
  • Policy-Based Management
  • Troubleshooting and Throttling (Resource Governor, Extended Events)
  • New Development Technologies (Spatial Indexes, Sparse Columns, Filtered Indexes, Change Data Capture, FILESTREAM)
  • Performance Data Collection
  • Scalability Enhancements (Data Compression, Partition-Level Lock Escalation)

Session 1: Essential Database Maintenance

In this session, Paul and Kimberly will run you through their top-ten database maintenance recommendations, with a lot of tips and tricks along the way. These are distilled from almost 30 years combined experience working with SQL Server customers and are geared towards making your databases more performant, more available, and more easily managed (to save you time!). Everything in this session will be practical and applicable to a wide variety of databases. Topics covered and myths debunked include: backups, shrinks, fragmentation, statistics, and much more! Focus will be on 2005 but we'll explain some of the key differences for 2000 and 2008 as well.

Session 2: Corruption Survival Techniques

Your database is corrupt - what do you do? Well, it depends! How critical is the data? Do you know what's really wrong with the database? What does all that DBCC CHECKDB output mean? Should you restore or repair? It’s all about limiting downtime and data-loss when a corruption occurs - from knowing the tools to understanding the implications of choices you make. In this demo-heavy session Paul and Kimberly will give you insight into how to recover from corruption without making things worse. Most importantly you'll get step-by-step instructions for dealing with the more common scenarios.

Session 3:  Are Your Indexing Strategies Working?

So you spent a bunch of time figuring out what indexes you should have while designing and testing your database. Now you're in production and six months have gone past. Are your strategies still valid now? Is SQL Server using the indexes you created? Are the users issuing the queries you thought they would - or are you missing crucial indexes? More importantly - how can you figure any of this out? In this demo-heavy session, Paul and Kimberly will show you how to analyze what's currently going on with your database and how to bring your initial strategy up-to-date. Come along to this session to help you find out what you might not know about your workload!
The whole conference line-up looks great - with a bunch of our SQL MVP friends doing sessions too. So - no matter which conference you come to, we're really looking forward to meeting new people and seeing some of the your faces again!

Phew - last week Kimberly and I spent 3 days teaching the ins-and-outs of SQL Server 2008 for DBAs/IT-Pros to about 130 Microsoft SQL Server experts and MVPs (like Kalen Delaney, Adam Machanic and Ron Talmage). This was the (95% complete) Beta delivery of a course we've been developing for the last six months for Microsoft that they'll use to train their SQL experts around the world on the new release. It's been very interesting watching the features develop through the CTPs (especially since I left the fold last August) - and making demos work on pre-release builds of the CTPs.

Teaching the course was a *blast* - the thing I love about teaching a really geeky crowd is the plethora of great questions and opportunities for going deep with explanations. Our team actually wrote and delivered the concurrently presented Developer and BI tracks as well. As you can see from the list below (and this is just the features a DBA needs to use/know about), SQL Server 2008 isn't a dot release of Yukon at all, as some people have suggested. Over the three days we covered:

  • Database Mirroring (D)
  • Backup Compression
  • Peer-to-Peer Replication (D)
  • Transparent Data Encryption (D)
  • Extensible (Off-Box) Key Management
  • All Actions Audited (D)
  • Policy-Based Management
  • Resource Governor (D)
  • Extended Events (D)
  • Spatial Indexes
  • Integrated Full-Text Search
  • Sparse Columns (D)
  • Filtered Indexes
  • Change Tracking
  • Change Data Capture (D)
  • FILESTREAM (D)
  • Performance Data Collection
  • Query Optimizer Enhancements
  • Data Compression (D)
  • Service Broker
  • Partition-Level Lock Escalation (D)

The features marked with a (D) are ones I demo'd during the course (Kimberly demo'd a bunch of the others - especially the tools features). Some of the demos were challenging to make work in time as we only got a pre-CTP6 build mid-January just before we headed off to China.

So why am I posting this? Well, a bunch of these features are in CTP-6, which should be just around the corner, and I have some easy-to-understand demos of them that I'll be posting here over the next month or so. Also, if this course sounds interesting, Kimberly and I will be teaching it in various configurations over the next year - starting with SQL Connections in April, a soon-to-be-announced class in Iceland in March, and the ITPro portion of TechEd in June.

Watch this space starting next week (today's the last day of six straight weeks of teaching for us so this weekend's a break :-))

120x240_SQLConn_IBT.jpg120x240_SQLConnSpring08.jpg

 

No sooner has Fall conference season finished then it's New Year and we start everything all over again! SQLskills (Me, Kimberly, Bob, and Stacia) is doing a *ton* of stuff at SQL Connections this Spring. The conference is in Orlando as usual and runs from April 20th to 23rd, with pre-con workshops on the 20th. From this conference onwards Kimberly and I are the Co-Chairs of SQL Connections - it's been great fun putting together a killer line-up of speakers and sessions for you.

We've got so much cool stuff to talk about that as well as doing a pre-con on the 20th, we're also doing a pre-pre-con on the 19th (and so is Bob) AND a post-con workshop on the 24th! And if that's not enough to help us lose our voices during the week, we're also doing 10 conference sessions between the four of us! Tuesday 21st is Microsoft day and the session line-up is shaping up well - lots of juicy details about SQL Server 2008 - as well as some best-practices sessions for those of you who are happy with SQL Server 2000 or 2005 for now.

 

Here's what we're doing:

Workshops

  • April 19 - Pre-pre-con: SPR301: The Accidental DBA: Survival Tips, Tricks, and Techniques

(Paul S. Randal & Kimberly L. Tripp)

Have you been nominated as "the SQL person" on your team? Are you a developer who's suddenly found their test database has become critical for your company's business? Have you become a DBA—even only accidentally—and do you find yourself managing SQL Server database(s) more and more? Are you sure your data is protected? Are you sure your applications can scale? The one thing you NEED now, to manage this system correctly—is knowledge! We'll cover all of the critical components related to configuring, implementing, and maintaining a SQL Server system. Topics will include an overview of SQL Server components, protecting and maintaining the data, writing effective server-side components (e.g., procedures and transactions), and many other items that all require server-side smarts. Come to this workshop to find out the things you need to know to successfully manage SQL Server from the beginning—a day spent here will save you many more!

  • April 19 - Pre-pre-con: SPR302: SQL Server 2008 Overview for Developers

(Bob Beauchemin)

SQL Server 2008 introduces a number of exciting new features for developers, from support for Spatial Data types to a mechanism to store SQL BLOB data using the NTFS file system, to improvements in any development-related area from T-SQL to SQLCLR to XML. This one-day seminar is meant to get you up to speed quickly on the new features and give you some insight into how to most effectively use them to your advantage with either new or existing development projects. Some of the topics covered include:

  • Spatial data—how to geocode existing data, import spatial reference data, and use spatial queries and indexes for best performance.
  • Filestream data—when to store large binary data in the database or in SQL Server's filestream data storage. How to read and write filestream data with the system streaming I/O functions.
  • Extended date/time data type support—the specifics of SQL Server 2008's four new temporal data types and extensions to T-SQL date/time functions.
  • T-SQL enhancements—learn the "zen" behind the new T-SQL MERGE statement, grouping set support, table-valued parameters, change tracking, metadata tracking, and improved syntax.
  • Query Performance Improvements—besides covering T-SQL syntax, I'll cover how the new T-SQL statements help to improve performance, as well as covering performance and query plan guide improvements to not only "make SQL run faster" but also to stabilize query plans.
  • SQLCLR improvements—covering how to use the improvements in this area, including nullable type support, large UDTs and UDAggs, multi-input UDAggs, and ordered table-valued functions.
  • Service Broker enhancements—diagnose Service Broker setup problems easily using the new SSBDiag utility and set message priorities on a service/contract.
  • April 20 - Pre-con: SPR303: SQL Server 2008 Overview for DBAs

(Paul S. Randal & Kimberly L. Tripp)

SQL Server 2008 offers an impressive array of capabilities for professional developers that build upon key innovations introduced in SQL Server 2005. The use of many of these will have manageability and infrastructure implications for a database—and hence the DBA! There are also enhancements to existing high-availability technologies, plus a variety of new tools to aid in managing performance, scalability, administration, and troubleshooting. This workshop will help you understand how to exploit the new toolset and how to manage a database that makes use of the new features in SQL Server 2008. Come to this workshop so your developers don't surprise you with new demands once your company upgrades!

  • April 24 - Post-con: SPS302: SQL Server - Put Your Knowledge Into Action (Bring Your Own Laptop)

(Paul S. Randal & Kimberly L. Tripp)

After a week of learning and watching demos—spend your last conference day putting your knowledge into action and diving deeper into the implementation details. Bring your own laptop to install our VPC environment setup with hands-on lab exercises to walk you through some of our most important features in Database Maintenance and Disaster Recovery. All labs will be ILLs (instructor-led labs) with supporting hands-on lab content *and* you will walk away with your own copy of the DVD to continue the exercises back at your office. You can attend without a laptop but your experience will be significantly better with one! This is meant as an advanced workshop and will expect a reasonable laptop configuration in order to participate: * Virtual Server or Virtual PC—already installed * At least 1 GB of physical memory w/512 MB dedicated to the VPC environment (2 GB is preferred w/1 GB dedicated to VPC) * 12 GB of physical disk space (20+ GB is preferred) * DVD Drive.

Sessions

  • SDB403: Diagnosis with Extended Events in SQL Server 2008

(Bob Beauchemin)

When I'm doing problem solving, it's always good to have too much information rather than too little. With this in mind, you'll need to look at SQL Server Extended Events (XEvent support) in SQL Server 2008. SQL Server 2008 adds support for extended events that works by creating and activating EVENT SESSIONS with DDL statements. In this session, I'll cover the different event providers, including the event provider for ETW (Event Tracing for Windows) and go over setting up an extended event trace and deciphering the diagnostic information provided.

  • SDB304: PowerShell in SQL Server 2008

(Bob Beauchemin)

PowerShell scripting has become the command shell and scripting interface of choice in Windows, from Exchange administration through Windows Management Instrumentation (WMI) and everywhere in between. In SQL Server 2008, this functionality comes to SQL Server by means of a PowerShell provider for SQL Server and built-in PowerShell functionality from SQL Server Management Studio's Object Explorer. This session will focus on how to use the provider to your best advantage and unique features that separate PowerShell scripting from traditional scripting.

  • SDB307: Learn the XML You Need to Manage Your Database

(Bob Beauchemin)

SQL Server 2005 includes support for an XML data type and XML Query languages. Although at first glance it appears that XML support is only a developer tool, looking at the "XML landscape" in SQL Server 2005, this is not the case. There are not only needs for a DBA to know how to manage database objects like XML SCHEMA COLLECTIONS and XML Indexes, but DBA-specific features that require XML and XQuery knowledge. The DBA-specific items that use an XML format in SQL Server 2005 include Query Plans, Deadlock Graph/Blocked Process Information, Eventdata() function—DDL Triggers and Query Notifications, Bulkcopy—XML format files and bulk copying XML, SQL Server Surface Area Configuration tool format, Query Memory Grant Information, Command line input and output From Database Tuning Advisor, and more! With all of the DBA-specific interest items in XML format, it's not hard to see that knowing XML and XQuery not only makes the DBA able to better manage developer database objects, but enhances the DBA debugging, troubleshooting, and configuration abilities. XML is not a "nice to have" for DBAs any more, with SQL Server 2005 it’s a "must have."

  • SDB308: Follow the Rabbit: Interactive Session on Database Mirroring

(Paul S. Randal & Kimberly L. Tripp)

If there's something you want to know about Database Mirroring, we've got the answer for you! Bring along your questions as we discuss how Database Mirroring works while setting up and implementing a mirroring solution. We'll also discuss monitoring and troubleshooting, plus the various failover scenarios. This session might not seem as structured as other sessions, but you'll be surprised at how informative and fun it is!

  • SDB309: Follow the Rabbit: Interactive Session on Backup and Restore

(Paul S. Randal & Kimberly L. Tripp)

If there's something you want to know about Backup or Restore, we've got the answer for you! Bring along your questions as we discuss how Backup and Restore work, planning a backup strategy, and various restore scenarios. This session might not seem as structured as other sessions, but you'll be surprised at how informative and fun it is!

  • SDV307: Index Internals and Usage

(Paul S. Randal & Kimberly L. Tripp)

Indexes are arguably the most important structures in a database yet they are often poorly understood and neglected. In this session you'll be reminded of the internals of indexes but our focus will be on how they are used by the SQL Server engine and what you need to do to make sure they're kept in optimum health. A myriad of tips, tricks, and optimizations will be discussed and demo'd so that you improve performance immediately.

  • SBI201: Searching Business Intelligence Data in Microsoft Office SharePoint Server 2007

(Stacia Misner)

One great reason to use MOSS as your front-end to business intelligence is the ability to search for all relevant documents regardless of the format used to present the data and thereby eliminate information silos. However, deploying workbooks and reports or creating dashboards only satisfies some requests for information and only if document titles and properties have been created with search in mind. What if you could also search the data itself? In other words, what if you could find all BI reports that include information about a particular product? With a little extra effort, you can enhance MOSS’s search capabilities using the Business Data Catalog to search inside all those Excel 2007 and Reporting Services reports you’ve been deploying to MOSS. Come to this session to understand the technical architecture required to search business intelligence data and to learn how to create Business Data Catalog applications for business intelligence.

  • SBI202: Data Mining for the Rest of Us

(Stacia Misner)

Don’t worry if you don’t hold a PhD in data mining or even if you didn’t take statistics in college. You can still use and, better yet, understand data mining now that Data Mining Add-Ins for Office 2007 is available. Whether you regularly analyze data now or provide technical support for those who do, it’s time to learn how to take business intelligence to the next level in your organization. This session will show you specific examples for exploring common data sets, such as sales and financial data, to find the hidden information in your business. You’ll understand the technical architecture requirements for the Data Mining Add-Ins, learn how to prepare data for data mining, and learn how to apply data mining techniques to specific business problems.

  • SBI307: Troubleshooting MDX Query Performance

(Stacia Misner)

There are lots of ways to optimize your Analysis Services environment, but tuning the server or improving the database design doesn’t help if your MDX queries are not efficient. Learn how to determine whether a query is the root cause of your performance issues and how to use MDX best practices to improve query performance.

  • SBI308: Follow the Rabbit—Interactive Q&A on Analysis Services Performance

(Stacia Misner)

The focus of this discussion is how to adjust database design and server tuning to help you get better performance from your Analysis Services solution. There will be only 5-10 slides covering best practices to get the conversation started, but most of the session time is open for your questions. Come participate in this session for an informative and interactive experience that will give you practical advice to put into practice in your own environment.

So, serious amounts of info, tips, and tricks for you to geek-out on with us and take home to use. We hope to see a lot of you there!

Paul

Categories:
Conferences

While we were in Barcelona we sat down with Richard Campbell and Greg Hughes from RunAs Radio to record a 1/2 hour interview on SQL Server 2008. We touch on a ton of different features (look at the number of Categories I've tagged this with!) and have a bunch of laughs along the way - check it out here.

PS There's been a ton of interest in the slide deck idea I had so we'll be going ahead with that. Look for an announcement sometime in the first few months of next year about how to get them. Thanks to everyone that replied!

With the class we taught yesterday in Zurich for Microsoft, Kimberly and I have just finished almost three weeks of continuous travelling and presenting at conferences. Now we're taking some time off to relax and recharge. My blog will be silent until Monday 26th November, when I'll start posting some cool articles with example scripts showing how to recover from various disasters. Thanks to everyone who's responded to the last few weeks worth of posts, and to those who've sent in questions regarding discussions we had at the various conferences. I will definitely reply to each of them, but it may not be until next week.

If you're in the US, have a great Thanksgiving! See you soon...

Categories:
Conferences | Personal

It's been a very tough couple of weeks for us with back-to-back conferences in Las Vegas and Barcelona. Now we're in Zurich for a few days before heading back to Redmond for the rest of the year. TechEd IT Forum was probably the most tiring conference I've ever done - we did 12 sessions between us in four days, co-presenting 10 of them, and with 5 back-to-back on Thursday. So Friday night was party-time, first with the traditional Speaker Dinner and then a bunch of us went out dancing until 3am. Sore heads abounded the next morning as we all headed to the airport for flights - I'm glad Kimberly and I only had a short hop to Zurich rather than our long flights back to the West Coast.

Here's a shot Kimberly took of me, Mark Russinovich, and John Craddock headed towards the nightclub. Look forward to seeing you in Barcelona again next year!

Categories:
Conferences

On the last day of SQL Connections a couple of weeks back we did a 20 minute TV interview with Steve Wynkoop of SSWUG. Apart from the mandatory mention of our favorite game Blokus, we discussed a bunch of new features coming in SQL Server 2008 while I struggled not to say 'we' instead of 'they' to describe the SQL team. I'm still in recovery I guess...

Check it out at http://www.sswug.org/sswugtv/seeshow.asp?sid=P227.

(Oops - deleted this by accident - re-entering it.)

Day 1 for us here in Barcelona was pretty tiring. After flying in from Seattle on Monday, and waking up with jet-lag on Tuesday at 2am, we did 4 sessions during the day, with 8 more to go by Friday. By the time we got back to the speaker hotel we were both totally beat but we rallied for a nice dinner with our good friend (and last week's top-scoring TechEd speaker - congratulations!) Rafal Lukawiecki. All our sessions were well attended with lots of excellent questions.

In the afternoon gap between sessions 3 and 4 we sat down with the TechEd TV crew for a short interview on a very comfy couch - check it out (and others from the conference) here.

Categories:
Conferences | Interviews

As promised, here's the first of the grab-bag of questions we were asked during conferences. I'm blogging a selection of the stuff I noted down - Kimberly also has a bunch of stuff too that she's blogging about as I type - see here. These are some of the questions we were asked during our pre-con at SQL Connections on Database Maintenance: From Planning to Practice to Post-Mortem. It was cool that people came prepared with so many great questions - most of which we answered during the session and some I need to follow-up with the Product Team about.

Q1) I have a filegroup with two files. I add a third file, use some of the space, and then do a rebuild of the index that takes up most of the space in the original two files. Why doesn't the newly rebuilt index get spread evenly across the three files? I.e. why doesn't SQL Server rebalance the data across the files?

A1) There are two things to consider here. The first is the way that SQL Server allocates space from multiple files in a filegroup. It uses a mechanism called proportional-fill that will allocates space from files in round-robin fashion, but weights the allocations towards files that are larger and have more free space. In the example above, the space in the newly-added third file will be used before the first and second files are grown to add more space. The second thing to consider is that the process of rebuilding an index requires building a new copy of the index before dropping the old on - so in the example above, the existing allocated space can't be reused until after the index rebuild operation completes.

The concept of adding a file and having SQL Server rebalance the data across the files doesn't exist. It was something I proposed during SQL Server 2005 development but we (seriously) didn't have time to do it. The solution I recommend is to create a new filegroup with as many files as you need, rebuild the index into the new filegroup using the CREATE INDEX WITH DROP_EXISTING command, and then drop the old filegroup.

Q2) Multiple questions about whether a non-clustered index gets rebuilt on SQL Server 2005 under different circumstances

A2) See the blog post I wrote here which goes into all the different combinations. A lot of the confusion comes from the fact that on SQL Server 2000, for non-unique clustered indexes where SQL Server has to generate a uniquifying value (called a uniquifier), when it gets rebuilt all the non-clustered indexes have to be rebuilt too as the uniquifier values are regenerated. On SQL Server 2005 this is not the case - a BIG improvement.

Q3) A lot of the features we discussed (e.g. partitioning and online operations) are in Enterprise Edition only. What's the complete list of features that are in Enterprise vs Standard Editions for SQL Server 2005?

A3) The best list we know of is in MSDN - http://msdn2.microsoft.com/en-us/library/ms143761.aspx

Q4) In a maintenance plan, is it a good idea to do an index rebuild followed by an update statistics?

A4) No! An index rebuild will do the equivalent of an update stats with a full scan. A manual update stats will use whichever sampling rate was set for that particular set of statistics. So - not only does doing an update stats after an index rebuild waste resources, you may actually end of with a worse set of stats if the manualy update stats only does a sampled scan.

Q5) How can you tell whether DBCC CHECKDB is doing a deep-dive that's going to take much longer than usual?

A5) There are several algorithms in DBCC CHECKDB that are designed to quickly tell whether a corruption exists or not, but at the expense of not being able to tell exactly where the corruption is. The justification for this is that corruptions are not very common (considering the millions of times per day that DBCC CHECKDB is run) and so it makes sense to engineer for the success case and take the hit of a longer run-time in the error case. When a corruption is discovered there hasn't been any to tell that DBCC CHECKDB is going to run logner than usual until SQL Server 2005 SP2. In SP2 a new error, 5268 was added that will be output to the errorlog when one of the deep-dive algorithms is triggered. I advise you to add an alert on this error.

Q6) What are the various forums where Paul answers questions on corruptions?

A6) There are 4 forums that I (and others with good advice also) frequent:

I'm also happy for you to send me email! Just beware that on forum posts and emails you may not get a reply from anyone for a day or more - so if you have a critical server-down issue then you should contact SQL Product Support.

Ok - that's enough for tonight. More tomorrow from the Disaster Recovery workshop. Thanks to everyone who came to the workshop today!

After all the build-up over the last few weeks (putting finishing touches to decks and demos), we're finally off to the last set of conferences for the year. First up is SQL Connections in Las Vegas, with over 5000 attendees!!. We flew down yesterday from Seattle to hang out for an extra few days before the conference, as unbelievably after 9 years in the US it's my first time ever in Las Vegas.

It's a kind of a weird place - you're flying along over desert and mountains and suddenly there's a city in the middle of nowhere. The first landmark I could see that positively ID'd it as Vegas was the distinctive black pyramid of the Luxor hotel - we're actually looking down on it from our room in THE hotel (totally pretentious name :-) but nice rooms). Looking out at the Strip, it seems like every second or third car is a limo of some description.

Now that we're here, we're making full use of the extra time to take in some of the sights and sounds. We had dinner last night at Mix with our good friends Gert Drapers and his wife Karen, plus Michele Leroux Bustamante and her husband Andres. The food was great - I had calamari risotto plus beef tenderloin with foie gras and truffles - and Andres chose some really nice wine for us all. Unfortunately, Kimberly didn't enjoy her entree at all - but she did digress from her usual shrimps and scallops choices (her appetizer was a stunning scallop dish) so I wasn't totally surprised. Actually I tried some of her dish too - cod with sweet crumbly pastry over capers, eggplant, olives, and lemon - not how it was described on the menu and totally not something I'd recommend - and I *love* seafood. Tonight we're heading out again with Michele and Andres to see Elton John playing at Ceasar's Palace. Tomorrow the work begins...

So given that we're doing a pre-pre con tomorrow (see my previous post here for all the details), we needed to head over to the conference centre in the Mandalay Bay to pick up our speaker-shirts and badges. After walking for what seemed like miles through casinos and corridors - Vegas is *busy* - we arrived. Here's the sight that greeted us - a small army of conference crew stuffing bags and finalizing registration details.

This is a pretty exciting conference for us - it's our first as a married couple! Almost all of our sessions are together and for the few that it's only Kimberly speaking I'll either sit at the back and heckle or maybe try my hand at blackjack or some other cunning way of giving all our money away very quickly. I suspect Kimberly would rather I heckle :-)

Seriously though, we *love* presenting together, which is why I left Microsoft in the first place and other the next few weeks we'll certainly be doing a lot of it - with TechEd IT Forum in Barcelona straight after SQL Connections and then a TechNet Deep-Dive on Database Maintenance in Zurich the week after that. When we're done we can finally crash for the year as the next work trip isn't until mid-January when we head to China to teach some more classes (Kimberly's turn to experience somewhere new).

One thing we're definitely going to do while we're on the road is blog lots - at least one of us will post every day with some tidbit of info or answer to an interesting question that came up during a session or workshop.

Hopefully we'll see you at one of these events - stop by and say hi!

Categories:
Conferences | Personal

Two weeks to go until the conferences start...

I've revamped the main Upcoming Events page on SQLskills.com to list all the DBA/IT-Pro, Developer, and BI sessions we're collectively doing at SQL Connections Fall, Microsoft TechEd Developers, Microsoft TechEd IT Forum, and a Microsoft TechNet Deep-Dive in November. (Now that I've finished my Lego model, what else am I going to do on a wet Sunday afternoon?:-))

And there's a lot of it - 4 full-day workshops, 17 sessions, 9 chalk-talks, 3 instructor-led labs, and 1 lunchtime demo session - but they're filling up fast and it looks like we'll be doing a few repeats at IT Forum. Anyone coming to any of our full-day workshops will get one of our DVDs packed full of Hands-On labs - incidentally, the Always-On DVD will be the base for our post-con workshop at SQL Connections.

One of the events I haven't mentioned before - the TechNet Deep-Dive. This is being organized by Microsoft in Switzerland and will be a full-day workshop taught by Kimberly and I on database maintenance. Checkout the link above for details on how to register.

We've had some questions about which of the full-day workshops are applicable to customers running SQL Server 2000. Well, a lot of the technology we talk about was introduced in SQL Server 2005, but the concepts and best-practices remain the same. I'd say that the database maintenance workshop probably has the most content that will transfer to SQL Server 2000. However, if you're planning to upgrade to SQL Server 2005 or 2008, these workshops are packed full of info on new features and syntax that you'll need to know.

Look forward to seeing you at one of the events!

Categories:
Conferences

With the November 5-9th SQL Connections conference in Las Vegas around the corner, Shirley Brothers, the Connections Conference Manager, would like to start planning the Spring show. From the Spring show onwards, Kimberly and I will be the co-chairs of the SQL Connections conference. We would like to invite you to submit abstracts for the Spring 2008 SQL Connections conference, to be held in Orlando, April 20-24th, 2008.

The conference will take place shortly after the SQL Server 2008 launch (Feb 27, 2008), and will focus on best practices for SQL Server 2005, how to upgrade and migrate applications from SQL Server 200x to SQL Server 2008 and new features to leverage in SQL Server 2008. However, we will consider all topics - from design to performance to troubleshooting to architectures to programming. Also, we're likely to closely follow our past conference format with three primary themes/tracks: Infrastructure and Scalability, Programming, and Business Intelligence. You should aim for the intermediate to advanced audience for any SQL Server 2005 materials and for SQL Server 2008 - we'll consider any level - especially depending on the newness of the feature.

For submitting session abstracts, please use this URL: 
http://www.deeptraining.com/devconnections/abstracts

Please keep the abstracts under 200 words each and in one paragraph. Please do not use bulleted items or line breaks, and please use a spell-checker. If you have an issue with the site, please follow up with an email as well to
paul@sqlskills.com.

Please create a new speaker record (if you haven't submitted before) and submit at least 3 abstracts; however, it will help your chances of being selected if you submit 5 or 6 abstracts. We need to have all your abstracts by October 26th. 

Finally, please see some important notes about your sessions at Connections conferences. These comments are from our Connections Conference Manager - Shirley Brothers:


I would like to thank each and every one of our Connections speakers for helping us make this event so successful. Last year in Vegas we had just over 4,700 attendees; we hope to do that or better this fall. By the end of September we had over 3,000 registrations for our Fall show.

A successful show happens when you have a combination of things come together: great speakers, good venue, great partners, fun events, and ongoing relationship building. I hope we can all continue to work together to make Connections the very best event outside of Tech Ed, for years to come. As a more successful show, our competitors are trying to compete by moving their shows closer to our dates and in some cases, to the same cities.

It’s very disheartening for me to see our speakers presenting similar topics at competing shows that are scheduled so close to our own shows. So I want to make a small change in how we handle speakers. Essentially, I don’t want to schedule a speaker at a Connections show who is also presenting at one of our competitor’s shows, in the same state, within 30 days of a Connections show. Many of you have known me for years and you know that I would never discourage a speaker from doing something that is good for his/her career and company. I have never asked a speaker not to speak for a competitor and I am NOT saying that now. I am saying that if another show sits within 30 days of ours in the same state, that the speaker should choose to speak at one or the other conference, but not both. If for whatever reason a speaker does not choose Connections during that time period, there will NOT be hard feelings and they can speak for one of our shows at another time. 

I want Connections conferences to be different and unique in the minds of our attendees, our sponsors, and our speakers. I have given this a lot of thought and I think the best way to produce our Connections shows is not to have any of our speakers presenting at our show and at a competitor’s show a few weeks earlier or later in the same place.

Shirley

 
Thanks for your continued support for our SQL Connections conference and we look forward to seeing your bright and shiny new abstracts!

Thanks,
Kimberly L. Tripp & Paul S. Randal
SQL Connections Conference Chairs

Are you coming to SQL Connections in November? If you are, and you're coming to either of our interactive sessions, we invite you to send us questions in advance that we will pick from and answer during the sessions. The two sessions are:

  • SDB351: Follow the Rabbit - Interactive Q&A on Availability

In this session, Kimberly Tripp and Paul Randal will have only 5-10 slides. The focus of this session is on mixing availability technologies to create the best overall architecture to minimize downtime and data loss. In general, we're going to focus on best practices and then open up to your questions so that you can drive the discussion! This session might not seem as structured as other sessions, but you'll be surprised at how informative and fun it is! Grab your lunch and come back - we'll probably still be hanging out!

  • SDB349: Follow the Rabbit - Interactive Q&A on the Storage Engine and the Relational Engine

In this session, Kimberly Tripp and Paul Randal will have only 5-10 slides. Each slide cover topics for discussion as well as the reason(s) for why something might be behaving badly and/or things to try to solve your problems. In general we're going to focus on best practices and then open up to your questions so that you can drive the discussion! Paul will focus on the SE (Storage Engine) and internals and Kimberly will focus on the RE (Relational Engine) and query tuning/performance. This session might not seem as structured as other sessions, but you'll be surprised at how informative and fun it is!

Please send your questions to questions@sqlskills.com with a subject line of 'Follow the Rabbit'. If we read out your question and answer it during the session, we'll give you a prize - one of our DVDs full of hands-on labs to learn from (the ones we give out to pre-con and post-con attendees) - we'll definitely do a few per session. Thanks!

Paul and Kimberly

ITForum.gifITForum.gif

 

 

 

November's going to be a busy month for Kimberly and I! Hot on the heels of SQL Connections in Las Vegas is the yearly pilgrimage to Barcelona for TechEd IT Forum and this year we're packing in a ton of sessions in between us.

 

Here's what we're doing:

Sessions

  • (DAT205) The Next Release of Microsoft SQL Server: Manageability Overview

The next release of SQL Server will contain exciting new manageability features targeted at reducing total cost of ownership. Come learn more about what's in store in areas like policy-driven administration and performance data collection and analysis. The session focuses on the database engine.

  • (DAT301) SQL Server Indexing - Unravelling the Unknown

Knowing tips and tricks to indexing is extremely helpful and will help you to solve "known" query problems. But what's lurking in the unknown? Is SQL Server using your indexes? Or, do you have a bunch of indexes sitting around wasting space and negatively impacting performance? Finally, SQL Server 2005 has an answer! SQL Server 2005 DMVs (Dynamic Management Views) can provide you with valuable information about your current indexing strategies, what should be removed, and even what's missing. Do you know how to find this information, leverage it, and then programmatically respond to it? Come to this session to learn a few tips and tricks as well as how to figure out the unknown indexing problems!

  • (DAT305) Secrets to Fast Detection and Recovery from Database Corruptions

How can you tell whether your data is corrupt? If you have corruption, how do you work out what’s wrong with the database? How do you ensure you have a valid backup? If you don’t have a valid backup, how and what do you repair? If you do have a backup, how do you work out whether you should restore or repair? And at what granularity? How do you go about determining what went wrong in the first place? It’s all about limiting downtime and data-loss when a corruption occurs - from knowing the tools to understanding the choices to planning a successful strategy. Some of the features discussed:

  • Torn-page detection and page checksums
  • IO read-retry
  • Backup checksums
  • Consistency checks (DBCC CHECKDB and related commands)
  • Database repairs

Facing database corruption is almost inevitable in every DBAs career - make sure you're prepared when it happens to you.

Chalk-talks

  • (DAT01-IS) SQL Server Upgrade Best Practices, Tips, and Tricks

Even though SQL Server 2005 has been out for a while, many companies are only just getting ready to upgrade. Come to this session to learn best practices, tips, and tricks distilled from two years of customer experiences. We'll also touch on some issues you'll face going to SQL Server 2008 when it's released next year. Come to this session to learn and share - bring your questions and experiences!

  • (DAT02-IS) SQL Server 2005 Database Mirroring: Setup to Implementation to Monitoring

Database Mirroring is one of the most exciting technologies in SQL Server 2005. With more and more people including it in their Disaster Recovery Strategies, it's important to know when to implement Database Mirroring as well as the implications of the architecture you choose. In this session there will be no slides just demos that will explore how Database Mirroring works in its various configurations and how that may effect your performance. Join us and see database mirroring in action and get your questions answered!

  • (DAT07-IS) DBCC Internals

All DBAs should have heard of (and used) DBCC – especially for consistency checking. Get down deeper than 400-level with this session on how some of the most important DBCC commands work. Topics covered include CHECKDB, SHRINKFILE, INDEXDEFRAG, and more.

Instructor-led labs

  • (DAT03-ILL) SQL Server Always On Technologies Instructor-Led Lab: Part 1 - Database Mirroring

See Database Mirroring in action! From implementation to monitoring to failover, database mirroring provides an ideal solution for many disaster recovery scenarios and this session will prepare you to handle them with minimal downtime or data loss.

  • (DAT04-ILL) SQL Server Always On Technologies Instructor-Led Lab: Part 2 - Database Snapshots

Database Snapshots are useful in many situations: database maintenance, data recovery, and point-in-time data access. You can even create a snapshot on a mirror database to get better return-on-investment (ROI) on your high-avaialbility (HA) investments. In this session we will explain how database snapshots work as well as go through several exercises, including working with multiple database snapshots and creating database snapshots on a mirror database.

  • (DAT05-ILL) SQL Server Always On Technologies Instructor-Led Lab: Part 3 - Online Operations

The bane of any DBA's life is to have to take data offline to perform maintenance or recover from a disaster. The various Online Operations in SQL Server 2005 alleviate much of this frustration. This session will show you how to move a table online for better isolation and control, partition a table online, access a database that's partially damaged, and perform online piecemeal restore.

Lunchtime Demos

  • (DAT01-PD) Database Recovery Techniques

In this fast-paced demo session nasty things will be done repeatedly to database. Then the methods and approaches to recovery will be shown. Not for the faint-hearted!

So, just like SQL Connections the week before, serious amounts of info, tips, and tricks for you to geek-out on with us and take home to use. We hope to see a lot of you there!

Paul (and Kimberly)

120x240_SQLConn_IBT.jpg120x240_SQLConn_IBT.jpg

 

 

The Fall conference season is on us again! Building on the great reaction to our co-presented Database Maintenance workshop at SQL Connections in Orlando, Kimberly and I are doing a *ton* of stuff at SQL Connections this Fall. The conference is in Las Vegas (where I've never been!) and runs from November 5th to 8th, with pre-con workshops on the 5th. We've got so much cool stuff to talk about that as well as doing a pre-con on the 5th, we're also doing a pre-pre-con on the 4th AND a post-con workshop on the 9th! And if that's not enough to help us lose our voices during the week, we're also doing 5 conference sessions between us! Tuesday 6th is Microsoft day and the session line-up looks great - lots of juicy details about SQL Server 2008 - as well as some best-practices sessions for those of you who are happy with SQL Server 2000 or 2005 for now.

 

 

Here's what we're doing:

Workshops

  • November 4th - Pre-pre-con: SPR301: SQL Server Database Maintenance: From Planning to Practice to Post-Mortem

No matter how much effort you spend on the design of your database, if you don't maintain it in production then it will suffer from performance and manageability problems. The key to continued performance and smooth operations is a well thought-out and automated database maintenance plan. This full-day workshop has three sections: planning, practice, and post-mortem. Planning for database maintenance actually starts with database design, so one of the things covered will be how to avoid design choices that limit database maintenance or contribute to maintenance problems. We'll discuss a laundry-list of maintenance problems and then explore how to tell if you need to mitigate them, strategies and best-practices for doing so, and how to avoid having your mitigation choices cause unforeseen and undesirable side-effects. Topics covered will include database files (shrink, grow, virtual log files, log size/management), consistency checks and corruption detection, fragmentation, statistics, backup/restore (options, granularity, strategies) and recovery models. The workshop will vary between 200-400 level covering ALL the key concepts of maintenance features. Finally, we'll spotlight some real-world examples where people made good and bad choices and discuss how you can repeat or avoid them, respectively. If you're wondering how to bring your database back under control, and keep it there, then this full-day workshop will help you tame maintenance problems whether you're a full-time system administrator or a reluctant DBA.

  • November 5th - Pre-con: SPR303: SQL Server Disaster Recovery: From Planning to Practice to Post-Mortem

Every DBA's nightmare is having down time and data loss and not knowing how to recover. However, designing and implementing a successful disaster recovery strategy is easier said than done. It's about asking all the right questions and figuring out all the best answers for your situation. This full-day workshop has three sections: planning, practice and post-mortem. Planning is a critical part of disaster recovery, but the most-often disregarded. Topics we'll cover here include: How do you choose technologies to fit requirements and effectively use key features of SQL Server 2005? How do technology choice affect workload performance? Putting a well-thought out plan into practice requires even more planning and in this section we'll discuss technology implementation, building step-by-step recovery/operation guides for when disasters happen, and, most importantly, testing your plan by simulating real problems. In the final section, we'll spotlight some real-world examples where people made costly mistakes and show you how they could have been avoided with a little planning and practice. If you've ever had nightmares about disaster recovery (or actually had a disaster!) and been at a loss for what to do, then this full-day workshop will give you the direction and technical details you need for success!

  • November 9th - Post-con: SPS302: SQL Server - Put Your Knowledge Into Action (Bring Your Own Laptop)

After a week of learning and watching demos - spend your last conference day putting your knowledge into action and diving deeper into the implementation details. Bring your own laptop to install our VPC environment setup with hands-on lab exercises to walk you through some of our most important features in Database Maintenance and Disaster Recovery. All labs will be ILLs (instructor-led labs) with supporting hands-on lab content *and* you will walk away with your own copy of the DVD to continue the exercises back at your office. You can attend without a laptop but your experience will be significantly better with one! This is meant as an advanced workshop and you're expected to bring a reasonable laptop configuration in order to participate: * Virtual Server or Virtual PC - already installed * At least 1GB of physical memory w/512MB dedicated to the VPC environment (2GB is preferred w/1GB dedicated to VPC) * 12 GB of physical disk space (20+ GB is preferred) * DVD Drive

Sessions

  • SDB351: Follow the Rabbit - Interactive Q&A on Availability

In this session, Kimberly Tripp and Paul Randal will have only 5-10 slides. The focus of this session is on mixing availability technologies to create the best overall architecture to minimize downtime and data loss. In general, we're going to focus on best practices and then open up to your questions so that you can drive the discussion! This session might not seem as structured as other sessions, but you'll be surprised at how informative and fun it is! Grab your lunch and come back - we'll probably still be hanging out!

  • SDB350: SQL Server Table Strategies - Designing for Performance and Availability

Often tables are designed based solely on the data that needs to be tracked (here's a column name, here's a data type - done!). Unfortunately, design does not usually take into account how the data is going to be used OR how SQL Server uses the data. Knowing the internals of table structures as well as the optmizations that come with good design will make your database truly scalable. Come to this session to learn some internals as well as various design strategies such as vertical and horizonal partitioning. Additionally, are there any other features that require changes in your design and thinking? For example, online index operations impact design because of the limitations that exist with partitioning and LOB columns. If you want to scale, you need to be here!

  • SDB347: SQL Server Indexing for Performance - Finding the Right Balance

In terms of performance tuning, there are few silver bullets. If I had to choose ONE area that improves performance the most (when designed appropriately!), it's indexing. However, indexing strategies depend on the data and even more so, the usage of the data. Come to this session to see what indexing strategies help the base table the most as well as how to optimize your worst performing queries.

  • SDB348: SQL Server Indexing Strategies - Are You Sure?

Knowing tips and tricks to indexing is extremely helpful and will help you to solve "known" problems. But what's lurking in the unknown? Is SQL Server using your indexes? Or, do you have a bunch of useless indexes? Finally, SQL Server 2005 has an answer! SQL Server 2005 DMVs (Dynamic Management Views) can provide you with valuable information about your current indexing strategies, what should be removed, and even what's missing. Do you know how to find this information, leverage it, and then programmatically respond to it? Come to this session to figure it out!

  • SDB349: Follow the Rabbit - Interactive Q&A on the Storage Engine and the Relational Engine

In this session, Kimberly Tripp and Paul Randal will have only 5-10 slides. Each slide cover topics for discussion as well as the reason(s) for why something might be behaving badly and/or things to try to solve your problems. In general we're going to focus on best practices and then open up to your questions so that you can drive the discussion! Paul will focus on the SE (Storage Engine) and internals and Kimberly will focus on the RE (Relational Engine) and query tuning/performance. This session might not seem as structured as other sessions, but you'll be surprised at how informative and fun it is!

So, serious amounts of info, tips, and tricks for you to geek-out on with us and take home to use. We hope to see a lot of you there!

Paul (and Kimberly)

Theme design by Nukeation based on Jelle Druyts