SQLskills SQL101: Is the recovery interval guaranteed?

SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101.

One of the concepts I find people misunderstand frequently is the recovery interval, either for the server as a whole or the per-database setting that was introduced in SQL Server 2012 for indirect checkpoints.

There are two misconceptions here:

  1. The recovery interval equals how often a checkpoint will occur
  2. SQL Server guarantees the recovery interval (i.e. crash recovery for the database will only take the amount of time specified in the recovery interval)

A bit of background: crash recovery has two tasks to perform: replaying log records from committed transactions (called REDO) and removing the effect of log records from uncommitted transactions (called UNDO). REDO only has to occur if there have been committed transactions where the changed data pages have not been written to disk (which is done by periodic checkpoints or a lazy writer background thread if there’s memory pressure on the buffer pool).

The recovery interval specifies an ideal upper bound on how long the REDO portion of crash recovery will take. The length of time REDO takes depends on how many log records need to be replayed from committed transactions. To help REDO stay on track, the recovery interval setting forces a checkpoint to occur when a certain number of log records have been generated (a number calculated using the chosen recovery interval).

So although recovery interval *does* control how often a checkpoint occurs, the recovery interval time does not equal the time between checkpoints.

For instance, if the recovery interval is set to one minute (the default), and a checkpoint occurs *now*, when will the next checkpoint occur? If activity in the database is very infrequent, a checkpoint may not occur for a very long time because the calculated recovery time for that activity will be less than one minute. If activity in the database is extremely high, checkpoints may occur every few seconds. Checkpoint frequency entirely depends on how fast log records are being generated *and* the recovery interval setting.

And of course SQL Server cannot *guarantee* the recovery interval. Imagine the recovery interval is set to one minute, and I start a transaction that updates millions of records over several hours. If SQL Server crashes just before the transaction commits, how long do you think it will take to roll back the millions of updates? Certainly it will take much longer than one minute – the configured recovery interval.

So I can update my definition to be: the recovery interval is therefore the ideal upper bound on how long the REDO portion of crash recovery will take, assuming no long-running transactions.

Hope this helps clear up any misconceptions.

No Fall U.S. classes in 2018

We’ve been finalizing our schedule for the remainder of 2018 and wanted to let everyone know that we will not have any Immersion Events in the U.S. this Fall. While we typically have several weeks of in-person classes in Chicago in October or November, we have several events and engagements already scheduled, including multiple Immersion Events in London.

The only in-person Immersion Events in the U.S. this year will be in Chicago in April/May and Bellevue, WA in June.

This means that each of our in-person Immersion Events will only be offered once in the U.S. this year (with an extra IEPTO1 in June in Bellevue). These classes are all filling up quickly, so please don’t wait to the last minute to register as you might miss out. If you haven’t checked our event list in a while, here’s what we’re offering:

  • IEPTO1: 5 days, Performance Tuning and Optimization, Part 1
  • IEPTO2: 5 days, Performance Tuning and Optimization, Part 2
  • IE0: 3 days, Junior/Accidental DBA
  • IEUpgrade: 3 days, Upgrading and New Features
  • IEAzure: 2 days, Azure SQL Database and Azure VMs
  • IECAG: 2 days, Clustering and Availability Groups
  • IEPS: 3 days, PowerShell for the SQL Server DBA
  • IEBIStrat: 3 days, Developing a BI and Analytics Strategy
  • IEPML: 5 days, Practical Machine Learning, AI, and Data Science
  • IESSIS1: 5 days, Learning SQL Server Integration Services

You can see the April/May/June U.S. class schedule here.


PS Rest assured, there are no changes to our schedule for London in September (our two performance tuning classes, plus Azure and clustering/AGs) – we’re looking forward to seeing everyone!

New Pluralsight course: Building Multi-instance Asynchronous Applications

Jonathan’s latest Pluralsight course has been published – SQL Server: Building Multi-instance Asynchronous Applications. It’s 2.5 hours long, and from the course description:

The Service Broker feature of SQL Server is transforming the way developers think about processing requests within the database and open new opportunities for scalable applications. This course builds on the basic concepts introduced in the SQL Server: Building Simple Asynchronous Applications course by introducing single-instance multi-database and multi-instance configurations for Service Broker. In this course, SQL Server: Building Multi-instance Asynchronous Applications, you’ll learn how to configure security for Service Broker operations across databases as well as the networking and routing configurations for secure communications between multiple instances of SQL Server. Next, you’ll explore bidirectional conversations between services to allow for status updates and the appropriate way of ending a conversation between two services. Finally, you’ll see how to maintain and troubleshoot Service Broker configurations using the SSBDiagnose tool to validate that all of the required components have been appropriately configured, using the Dynamic Management Views for checking message statuses, and using the events in SQL Trace and Extended Events for troubleshooting Service Broker problems. When you’ve finished this course, you’ll have the skills and knowledge to start implementing multi-database and multi-instance Service Broker configurations.

The modules are:

  • Introduction
  • Intra-instance Service Broker Configurations
  • Multi-instance Service Broker Configurations
  • Maintaining Service Broker Configurations
  • Troubleshooting Service Broker Configurations

Check it out here.

We now have more than 175 hours of SQLskills online training available (see all our 60 courses here), all for as little as $29/month through Pluralsight (including more than 6,000 other developer and IT training courses). That’s unbeatable value that you can’t afford to ignore.


New Pluralsight course: Understanding, Configuring, and Troubleshooting Database Mirroring

Glenn’s latest Pluralsight course has been published – SQL Server: Understanding, Configuring and Troubleshooting Database Mirroring. It’s 2.5 hours long, and from the course description:

SQL Server database mirroring is a very useful technology for high availability and disaster recovery, as well as for general purpose database movement, migration, and upgrades. In this course, SQL Server: Understanding, Configuring and Troubleshooting Database Mirroring, you’ll first learn the basics of database mirroring, its capabilities, and its limitations. Next, you’ll explore how to prepare an environment for database mirroring, and then how to configure database mirroring using either SQL Server Management Studio or T-SQL scripts. Then, you’ll learn how to monitor a database mirroring environment and troubleshoot common problems. Finally, you’ll discover how to use database mirroring for data migration and upgrading a database to a new version of SQL Server. When you’ve finished this course, you’ll have the skills and knowledge to start configuring, using and troubleshooting database mirroring.

The modules are:

  • Introduction
  • Database Mirroring Overview
  • Preparing for Database Mirroring
  • Configuring Database Mirroring
  • Monitoring and Troubleshooting Database Mirroring
  • Migrating Data Using Database Mirroring

Check it out here.

We now have more than 175 hours of SQLskills online training available (see all our 60 courses here), all for as little as $29/month through Pluralsight (including more than 6,000 other developer and IT training courses). That’s unbeatable value that you can’t afford to ignore.


Setting mentoring ground rules

One of the things I always recommend in the first newsletter of each year is to try to get a mentor. On the flip side of that is that one of the most rewarding things you can do in your professional life is to *be* a mentor to one or more people. I mentored more than 50 people back in 2015, and I think I’m going to do some more mentoring, starting in the Spring (watch the blog for details – but definitely not 50 again!).

If you’re going to be a mentor, I think it’s very important to set ground rules. One of my mentees from 2015 just sent me email saying he’s going to be mentoring this year (*so* cool to see people paying it forward!) and asking about the ground rules I set. I’ve been mentoring people for almost 20 years and I think you need to cover at least:

  • How communication will work, and expectations on both sides for how long a response may take
  • How to end the relationship
  • Which areas are fair game, and which aren’t (e.g. I wouldn’t answer SQL Server questions with the 2015 group)
  • Statement of confidentiality and trust
  • What actions will cause the relationship to end
  • How not to react to things I’ll say (e.g. I’m very blunt and honest – the whole point of a mentoring relationship is clear feedback)

That way there’s no ambiguity and you both know how things are going to work.

As an example, here’s the set of rules I sent to all my mentees to ‘ok’ before I’d move forward with them:

Lots of housekeeping, ground rules, and expectation setting in this email so PLEASE read through this email and let me know whether you’re comfortable with everything I say below. If not, for any reason, just say so (you don’t need to say why) and we’ll walk away with no hard feelings. I also need to know that you’re getting my emails. Once I hear back from you, I’ll send the kick-off part 2 email.

As I mentioned in the original blog post, I do all mentoring over email. I have two reasons for that:

It makes the whole process asynchronous, which means there’s no immediate pressure to respond and so is easier on us all. It also means we can think about responses for a week or two, and that’s especially useful as I’ve got several long trips without Internet this year.

I really don’t like talking on the phone. Phones are a necessary evil, but they don’t make for well-though-out discussions.

Once I’ve had a response from you so I know my email’s getting through, whenever I send an email out, I won’t chase you up to reply to it. If you go dark for, say, a month, I’ll assume you’re no longer interested or you’re done with mentoring. I’d appreciate a note to that effect if you decide that though, so we get a positive closure.

You can expect responses from me within a week or two. If a longer response will be delayed, I’ll let you know. If it goes more than two weeks and you haven’t heard from me about a reply, please ping me as your email might have been lost or (rarely) I might have accidentally deleted or mis-filed it.

I take all mentoring relationships seriously, and I expect you to as well. You’re going to be opening up and telling me things about yourself that you might not share/have shared with anyone else (such as hopes, failures, negatives, positives, weaknesses, strengths, work problems, family problems, whatever). Anything you tell me will remain strictly between us, and only us.

You can publicize whatever you want about the mentoring relationship and any advice I give you, unless I (rarely) tell you something is in confidence.

Do not tell me anything that is illegal or unethical (e.g. you cheated on a certification) – that will cause me to end the mentoring relationship immediately. No second chances on this. If there’s something we’re discussing that is making me uncomfortable, I’ll let you know.

I will not discuss politics or religion 1-1 through email. Sheep, diving, and electronics are fair game though :-)

We’re going to get to know each other better over the rest of this year. Feel free to Facebook friend me if you want – no pressure – I don’t care either way, but some people don’t like to presume to ask.

I will be blunt and honest with you; I don’t sugar-coat things. You’ve probably already seen that from me on Twitter and on my blog. Getting straight to the point in any discussion is the easiest way to get a point across clearly and with little or no ambiguity. Please don’t ever take anything I say to you as trying to be nasty, belittling, or destructive criticism – that’s not how I work or who I am. The whole point of a mentoring relationship is to be constructive, so please take everything I say with that in mind. If you find yourself having a hard time with that, let me know and we can work on that too. And feel free to disagree with anything I say too, you won’t offend me.

As I mentioned in the original post, this isn’t about me answering SQL Server questions for you. That’s what forums, Twitter, etc are for. Although I can help you figure out how to grow skills, this isn’t a mostly technical conversation.

This may seem like a lot of rules, but I’m very easy going. At the same time I like to have expectations set and ground rules agreed to so we all know where we stand – this is a big time investment from all of us, so it pays to get everything out in the open right at the start.

If that all sounds cool to you, let me know and I’ll send the second part of the kick off.


Feel free to use any or all of this if you’re going to be a mentor, or ask for something like this if you’re going to be a mentee.

The main thing to bear in mind is that both mentoring and being a mentee should be rewarding, and not feel like a chore or a slog. Setting some rules up front will help define the relationship and provide a clear way to end it if things aren’t going well.


More live online training from Kimberly in March!

Due to the popularity of Kimberly’s delivery of her new IEVLT: Immersion Event on Very Large Tables: Optimizing Performance and Availability through Partitioning in January, and the fact that many of you told us that you didn’t have a chance to attend, we’re running it again in March! The class will be delivered live via WebEx on March 20-22 (roughly 12-13 hours of content plus open Q&As; about the same as two full workshop days!) and the recording is available to attendees for six months following the end of the class. Note: we’re not planning any more deliveries of IEVLT until 2019.

Here are some quotes from people who attended the January class:

  • “Kimberly is incredibly knowledgeable and was able to adapt the techniques to all the different scenarios presented to her.”
  • “The best educator I’ve ever seen. She makes complex concepts “magically” easy to grasp. Incred-amazing.”
  • “Great course. I could hear clearly, the content was relevant to current day problems, and provided clear instruction.”
  • “This was REALLY good. Getting to an IE is tough there are only a few a year and more importantly because there are only a few they cover a pretty broad range of information. Since I do mainly database design and query tuning, I can’t justify much beyond IE1 as I don’t do day to day DBA work. Seeing you were offering the online event focused on a specific topic – very large tables – was PERFECT. I know I really need to improve my knowledge of the options in that area. I recalled the PV/PT architecture from IE1 and knew a refresher, coupled with the new information would be perfect. The cost was BEYOND reasonable. The time frame, at only about 1/2 a day, was easy to justify and easy to manage keeping up with regular work while I did it. So this worked out to be a perfect event.” – Todd Everett, USA
  • “SLIGHTLY prefer the classroom option, but attendance to a location can be very hard to manage and therefore WebEx is a VERY, VERY good alternative. I didn’t think it would be, but I’m definitely sold.” – Kevin Urquhart, UK
  • “I’m really glad I decided to participate in this event. I learnt a lot and I already see lots of opportunities to implement some of the strategies at my workplace (after working through all the materials of course :P).” – Ernst Kruger, South Africa
  • “Loved the online aspect. It felt like I was there with the question ability and having the questions just answered right there. I felt I had a voice and could ask anything and the ability to watch it later made it totally worth the registration.”
  • “Always love to sit at the feet of Kimberly. Always learn a ton.”
  • “I struggled with WebEx at first… felt a little like watching a video… BUT the moment it became interactive (which was very early on), that whole perception changed. By the end I REALLY enjoyed it as a method.”
  • “I really enjoyed the ability to ask questions as the course went along so that I didn’t forget what I wanted to ask while you were teaching. This allowed for questions to come through and class to continue until a good stopping point to answer the questions. Plus having the questions written from other attendees was nice for future reference instead of trying to remember from an in-person class discussion.”
  • “Kimberly, I have to tell you that you are hands down the finest educator I have ever met. Your dynamic personality, combined with your depth of knowledge, and passion to fully understand the subject matter are unmatched, in my experience. I feel truly privileged to have had the opportunity to learn from you again and again. You really DO make learning fun. Thank you!” – Mike Petri, USA
  • “I learned a lot of new topics and found this class really useful. Usually when I attend a class or an in person event I learn new things but no where near this class. Thanks for a great class.”

Rather than have people try to watch a full day of training at their computer for one of more days, the class will run from 10am to 3pm PST each day, with two 90-minute teaching sessions, each followed by Q&A, and a lunch break. We chose to do this, and to spread the class over a few days, so the times work well for those in the Americas, Africa, and Europe. We also realize that this is complex, architectural content, so want to give attendees time to digest each day’s material, plus extensive Q&A.

The modules covered will be:

  • Horizontal Partitioning Strategies
  • Partitioned Views
  • Partitioned Tables
  • Tables, Indexes, Keys, and Relationships
  • Implementing the Sliding Window Scenario
  • Key Partitioning Concerns and Considerations
  • Partitioning Techniques Combined
  • Review

The price of the class is US$895 and you can get all the details here.

The class was also announced in our newsletter this morning, with a $100 discount for those people who received that newsletter, valid for two weeks. All future live, online classes will always feature a two-week discount for newsletter subscribers.

We decided to start teaching some live, online classes as we recognize that not everyone can travel to our in-person classes, or take that time away from work or family, or simply have travel budget as well as training budget. People also have different ways they learn, some preferring in-person training, some preferring recorded, online training, and some preferring live, online training.

We’ll be doing more of these in 2018, on a variety of topics, so stay tuned for updates (and discounts through the newsletter).

We hope you can join us!

SQLskills SQL101: Why does my heap have a bunch of empty pages?

SQLskills has an ongoing initiative to blog about basic topics, which we’re calling SQL101. We’re all blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101.

Here’s a question I’m often asked (paraphrasing):

I’ve got a large heap table where the space isn’t being given up when I delete a large number of records, but then when I shrink the database the heap is reduced in size. Can you explain?

This behavior is how SQL Server works, but it’s pretty non-intuitive. When a page in an index becomes empty, it’s always deallocated, as an empty page isn’t allowed in a SQL Server index structure from SQL Server 2005 onward. However, the structure of a heap is different and as a result, the behavior is too.

Whenever a row is deleted in a heap, it’s usually the case that the page containing the row does not become empty. However, if the heap page that the row is stored on becomes empty as a result of the delete, the page cannot be deallocated from the table unless an exclusive (X) table lock is held (to remove the page from the internal free-space “tracking” mechanism that is in place for heaps). It’s not common that a table level X lock is held unless lock escalation has occurred (because you’re deleting enough rows to trigger escalation from individual row X locks to a single table X lock), or if you specifically use the TABLOCK hint on the delete statement, for instance. But, because both of these circumstances are unlikely, the empty heap page usually cannot be deallocated.

There is a Knowledge Base article that describes this phenomenon: KB 913399. However, the KB article only references up to and including SQL Server 2005 but this behavior exists in all version and is very easy to reproduce if you want to prove it to yourself.

The script below will create a database, create a table with one row per heap page, show you how many pages and rows, and how full each page is. Next it’ll delete all the rows, and show you the pages are still there, with no rows, and empty. Give it a try!

USE [EmptyHeapTest];

CREATE TABLE [test] ([c1] INT IDENTITY, [c2] CHAR (8000) DEFAULT 'a');

-- Insert 1000 rows, which will allocate 1000 pages
GO 1000

-- How many pages and how full?
SELECT [page_count], [record_count], [avg_page_space_used_in_percent]
FROM sys.dm_db_index_physical_stats (DB_ID (N'EmptyHeapTest'), OBJECT_ID (N'test'), 0, 	DEFAULT, 'DETAILED');
page_count           record_count         avg_page_space_used_in_percent
-------------------- -------------------- ------------------------------
1000                 1000                 98.974549048678
-- Delete all the rows

-- Did all the pages get deleted?
SELECT [page_count], [record_count], [avg_page_space_used_in_percent]
FROM sys.dm_db_index_physical_stats (DB_ID (N'EmptyHeapTest'), OBJECT_ID (N'test'), 0, 	DEFAULT, 'DETAILED');
page_count           record_count         avg_page_space_used_in_percent
-------------------- -------------------- ------------------------------
1000                 0                    0

The empty pages will be reused by subsequent inserts (into the same table, of course), but if the space isn’t going to be reused following a large delete in a heap, you might consider using the TABLOCK hint to allow the empty pages to be deallocated and the space made available for other objects in the database to use.

Another alternative is to just use a clustered index instead, or if a heap is necessary, you could rebuild the heap using ALTER TABLE … REBUILD (that was added in SQL Server 2008 to support enabling compression on a heap), with the caveat that this will cause all the table’s nonclustered indexes to be rebuilt.

On the extreme end (in my opinion), you could reclaim the empty heap space using a shrink operation. Shrink won’t free up space inside pages as it moves them (with the exception of compacting LOB pages as it goes – somewhat unsuccessfully depending on which version and build you’re on – see KB 2967240), but it will remove empty pages rather than moving them. This will effectively shrink the heap after a large delete, but with the usual caveats about shrink causing index fragmentation and generally being an expensive, slow operation to perform.

So now you know why you may have a bunch of empty pages in your heaps!

Calling all user group leaders! We want to present for you in 2018!

By the end of December, we at SQLskills had presented remotely (and a few in-person) to more than 100 user groups and PASS virtual chapters around the world in 2017, and we already have 45 user group sessions scheduled in 2018!

We’d love to present remotely for your user group in 2018, anywhere in the world. It’s not feasible for us to travel to user groups or SQL Saturdays unless we’re already in that particular city, but remote presentations are easy to do and are becoming more and more popular. We haven’t had any bandwidth problems doing remote presentations in 2017 to groups as far away as South Africa, Australia, and New Zealand, plus Norway, Canada, UK, Poland, Belgium, Brazil, Czech Republic, and Ireland. This way we can spread the community love around user groups everywhere that we wouldn’t usually get to in person.

Note: we have our own Webex accounts which we generally use, or we can use your GoToMeeting or Webex, but you must use computer audio – we won’t call in by phone as the sound quality is too poor. We also will not use Skype/Lync as we’ve had too many problems with it around user group laptops and sound.

So, calling all user group leaders! If you’d like one of us (me, Kimberly, Jon, Erin, Glenn, Tim) to present remotely for you in 2018 (or maybe even multiple times), send me an email and be sure to include:

  • Details of which user group you represent (and if sending from a shared user group account, your name)
  • The usual day of the month, meeting time, and timezone of the user group
  • Which months you have available, starting in January 2018 (a list of available dates would be ideal)
  • Whether you’d like just one or multiple

And I’ll let you know who’s available with what topics so you can pick. We have around 20 topics across the team that we can present on.

What’s the catch? There is no catch. We’re just continuing our community involvement next year and we all love presenting :-)

There’s no deadline for this – send me an email at any time and we’ll see what we can do.

We’re really looking forward to engaging with you all!


PS By all means pass the word on to any SharePoint and .Net user group leaders you know too.

SQLintersection Spring 2018

As we head towards our 11th SQLintersection in March, I’m excited to say that it’s once again our most diverse, complete, and information-packed show yet!

One of the pieces of feedback we hear over and over is that attendees love SQLintersection because it’s a smaller, laid-back show, where you get to actually spend time talking with the presenters 1-1. I have to say that’s one of the reasons why we love the show so much; *we* get to spend time talking to attendees, rather than being mobbed by hundreds of people after a session ends. And we only pick presenters who we know personally, and who we know to be humble, approachable, and eager to help someone out.

We have 2 pre-con days at the show and with our post-con day, there are 8 full-day workshops from which to choose. We have 40 technology-focused (NOT marketing) sessions from which to choose, plus two SQL Server keynotes, multiple industry-wide keynotes by Microsoft executives, and the ever-lively closing Q&A that we record as a RunAs Radio podcast (you can listen to the recording from our Fall 2017 show here.)

You’ll learn proven problem-solving techniques and technologies you can implement immediately. Our focus is around performance monitoring, troubleshooting, designing for scale and performance, cloud, as well as new features in SQL Server 2014, 2016, and 2017. It’s time to determine your 2008 / 2008 R2 migration strategy – should you upgrade to 2016/2017 directly? This is the place to figure that out!

If you’re interested in how we got here – check out some of Kimberly’s past posts:

  1. SQLintersection: a new year, a new conference
  2. SQLintersection’s Fall Conference – It’s all about ROI!
  3. Fall SQLintersection is coming up soon and we can’t wait!
  4. SQLintersection Conference and SQLafterDark Evening Event – what a fantastic week in Vegas

And Kimberly recorded a Microsoft Channel 9 video where she discusses the 2017 Spring show – see here.


With minimal to no marketing filler, we’ve largely kept our conference focus on ROI and technical content (performance / troubleshooting / tales-from-the-trenches with best practices on how to fix them ) but we’ve also added even more social events so that you really get time to intersect with the conference attendees and speakers. The addition of the SQL-specific, pub-quiz-style evening event SQLafterDark was wildly popular from some of our past shows and that’s returning for Spring!


SQLintersection: Great Speakers!

Once again, I think a great show starts with great speakers and current / useful content. All of these speakers are industry-experts that have worked in data / SQL for years (some can even boast decades) but all are still focused on consulting and working in the trenches. And, they’re good presenters! Not only will you hear useful content but you’ll do so in a way that’s digestible and applicable. Every speaker is either an MCM (Master), a past/present SQL Server MVP, or a past/present Microsoft employee (or a combination of all three!) But, regardless of their official credentials – ALL are focused on providing the most ROI that’s possible in their session(s) and/or their workshops, and ALL have spoken for SQLintersection multiple times.

Check out this phenomenal list of speakers:

  • Aaron Bertrand – MVP, SentryOne
  • Ben Miller, MCM, MVP, past Microsoft, Consultant
  • Bob Ward, SQL Server team at Microsoft
  • Brent Ozar, MCM, past-MVP, Consultant
  • David Pless – MCM, Microsoft
  • Gareth Swanepoel, Microsoft
  • Glenn Berry, past-MVP, SQLskills
  • Jes Borland, past-MVP, Microsoft
  • Justin Randall, MVP, SentryOne
  • Tim Chapman – MCM, Microsoft
  • Tim Radney – MVP, SQLskills
  • Kimberly L. Tripp – MCM Instructor, MVP, past SQL Server team at Microsoft, SQLskills
  • Paul S. Randal – MCM Instructor, MVP, past SQL Server team at Microsoft, SQLskills
  • Pedro Lopes, MCM, SQL Server team at Microsoft

You can read everyone’s full bio on our speaker page here.

SQLintersection: When is it all happening?

The conference officially runs from Monday, March 26 through Wednesday, March 28 with pre-conference and post-conference workshops that extend the show over a total of up to 6 full days. For the full conference, you’ll want to be there from Saturday, March 24 through Thursday, March 29.

  • Saturday, March 24 – pre-con day. There are three workshops running:
    • Migrating to SQL Server 2017 with Glenn Berry
    • SQL Server Indexing Strategies for Performance with Kimberly L. Tripp
    • The T-SQL Programming Workshop with Tim Chapman
  • Sunday, March 25 – pre-con day. There are three workshops running:
    • Azure for the SQL Server DBA with Tim Radney
    • Performance Troubleshooting using Waits and Latches with Paul S. Randal
    • PowerShell Essentials for the DBA with Ben Miller
  • Monday, March 26 through Wednesday, March 28 is the main conference. Conference sessions will run all day in multiple tracks:
    • Check out our sessions online here
    • Be sure to check out our cross-conference events and sessions
    • Get your pop-culture trivia and techie-SQL-trivia hat on and join us for SQLafterDark on Tuesday evening, March 27
  • Thursday, March 29 is our final day with two post-conference workshops running:
    • Mastering Query Tuning for SQL Server with Brent Ozar
    • SQL Server 2016 / 2017 and Power BI Reporting Solutions with David Pless

SQLintersection: Why is it for you?

If you want practical information delivered by speakers that not-only know the technologies but are competent and consistently, highly-rated presenters – this is the show for you. You will understand the RIGHT features to troubleshoot and solve your performance and availability problems now!

Check us out: www.SQLintersection.com.

We hope to see you there!

PS – Use the discount code ‘SQLskills’ when you register and receive $50 off registration!

New Pluralsight course: Automatic Tuning in SQL Server 2017 and Azure SQL Database

Erin’s latest Pluralsight course has been published – SQL Server: Automatic Tuning in SQL Server 2017 and Azure SQL Database. It’s 90 minutes long, and from the course description:

There’s a whole new world of automated features in SQL Server, based on data, that are designed to make life easier for the data professional, and it’s time to start using them! Microsoft has invested a lot of effort in these tools that can automate areas of performance tuning and give you time to work on more interesting and creative tasks that can’t be automated. In this course, SQL Server: Automatic Tuning in SQL Server 2017 and Azure SQL Database, you’ll learn how Query Store has been upgraded to also collect wait statistics from queries, to allow you to identify performance bottlenecks at the query level and dig deeper to resolve them. Next, you’ll explore Automatic Plan Forcing, which allows SQL Server to identify queries where performance has regressed and automatically force a prior query plan that is more efficient. Finally, you’ll take a dive into Automatic Index Management, which gives SQL Server the capability to automatically create missing indexes and remove unused or duplicate indexes. By the end of this course, you’ll have the skills and knowledge to start enabling these features in appropriate parts of your SQL Server environment and taking back some of your precious time!

The modules are:

  • Introduction
  • Finding and Using Wait Statistics in Query Store
  • Using Automatic Plan Correction
  • Using Automatic Index Management

Check it out here.

We now have more than 170 hours of SQLskills online training available (see all our 56 courses here), all for as little as $29/month through Pluralsight (including more than 6,000 other developer and IT training courses). That’s unbeatable value that you can’t afford to ignore.