Announcing our 2016 SQL Server Training Scholarship Winners

That heart means something.

We’re serious about the heart thing.

Thanksgiving is the perfect day for us to give back to the community that has given so much to us.

Our SQL Server Training Scholarship program applications were open to folks anywhere in the world working with SQL Server for foundations, non-profits, charities, or other similar companies making a real difference in the world today.

We originally aimed for 25 winners, but with over 300 applicants – many with really eye-opening stories – we ended up with several more than that. We’re not going to name individuals here, but they’re welcome to chime in in the comments if they’d like. Instead, we’re going to share just some of the winning organizations that opened our eyes and made us thankful today:

STARS is a not-for-profit air ambulance service that offers time, hope, and life-saving transport to critically ill and injured patients in Canada. Their VIP Stories – Very Important Patients – will make you pause and be thankful for all the first responders who are there to take care of you.

The International Justice Mission is a global organization that protects the poor from violence in the developing world. Their team of hundreds of lawyers, investigators, social workers, and community activists work by rescuing victims, bringing criminals to justice, restoring survivors, and strengthening justice systems. They fight slavery, sex trafficking, sexual violence, police brutality, property grabbing, and citizens rights abuse. They’ve rescued more than 23,000 people from violence and oppression.

The Wilderness Society protects Australia’s wilderness and promotes nature. Since their forming in 1976, they’ve kept resorts from building atop reefs, stopped uranium mining in a wilderness sanctuary, and enabled legal protection for new national parks and reserves.

The American Library Association believes that everyone needs equal access to information, especially those with literacy-related barriers, economic distress, cultural or social isolation, physical barriers, and more. They actively defend the privacy and right of library users to read, seek information, and speak freely. (But not loudly, I guess.)

The Elizabeth Glaser Pediatric AIDS Foundation started over 25 years ago as 3 moms around a kitchen table. Elizabeth Glaser contracted HIV in a blood transfusion while giving birth to her daughter, Ariel. Both Ariel and Elizabeth lost their battle with AIDS, but the foundation they started lives on, working in 14 countries to eliminate pediatric AIDS through research, advocacy, prevention, care, and treatment programs.

The American Institute of Physics advances and distributes the knowledge of physical sciences and its applications, and promotes the physical sciences to the public, leaders, government, and the media.

The YMCA Twin Cities in Minneapolis puts Christian principles into practice through programs that build healthy spirit, mind, and body for all. (I grew up attending YMCA classes myself.)

Mercy Corps helps people survive and get back on their feet when natural disaster strikes, economies collapse, or conflict erupts. They’re 4,000 people in more than 40 countries, and the organization has no political or religious agenda.

The Migrant Education Program helps Washington migrant students get through and graduate high school, then go on to further education and productive employment.

Planned Parenthood of the St. Louis Region and Southwest Missouri offers birth control, HPV vaccination and screening, exams, HIV and STD testing, and more health services. They give individuals the power and ability to take control of their lives, their health, and their future.

Catholic Health Services of Long Island has been ranked one of the best cardiac care hospitals in the nation for 9 years in a row. Their 17,000 employees handle over 81k admissions, 5k newborn deliveries, and hundreds of thousands of emergency visits and outpatient visits.

WaterAid is a UK organization working to stop the second biggest child killer worldwide – diarrhea caused by dirty water and bad sanitation.

Feros Care supports Australian seniors to live their best life in aged care. They want seniors to remain living healthy, independent lives, connected to their family, friends, and the community for as long as possible.

The American Red Cross responds to disasters, supports America’s military families, and manages blood drives, and in high school, they taught me CPR and first aid.

El Rio Community Health Center in Tucson, Arizona is one of the largest non-profit community health centers in the US. They provide medical services, dentistry, midwifery, and specialized care to over 900 people per day, most of which live at or below the federal poverty level.

The UK’s National Health Service (NHS) is a publicly funded health care system going through a serious financial crisis, possibly to be averted in the coming weeks. While paychecks are probably safe for now, the training budgets probably aren’t, as evidenced by many scholarship applicants from the NHS.

When you read stories like these, it’s really hard impossible to pick tiers of scholarships. (Heck, I started writing this post saying I’d only mention a few of the winners, and I couldn’t even stop there.) So forget prioritizing them.

This year’s winners, as chosen by staff voting, all receive:

  • 18 months access to all our training videos, free
  • Free registration to any of Brent’s SQLSaturday pre-cons through 2016
  • $995 seats in any of our 2016 5-day training classes

As SQL Server consultants and trainers, it’s hard for us to make a meaningful difference in the world. This feels like an important first step on a good journey to reward those who are doing such good work.

Thank you.

Trace Flag 2330: Who needs missing index requests?

Hey, remember 2005?

What a great year for… not SQL Server. Mirroring was still a Service Pack away, and there was an issue with spinlock contention on OPT_IDX_STATS or SPL_OPT_IDX_STATS. The KB for it is over here, and it’s pretty explicit that the issue was fixed in 2008, and didn’t carry over to any later versions. For people still on 2005, you had a Trace Flag: 2330.

Like most things, there are trade offs. When you enable it, SQL stops collecting missing index requests. Probably not a great idea unless you’re working with extreme edge cases where you’ve already tuned your indexes really well. Most people will never fall into that category, though many of them will think they have.

The issue that it quite commonly addressed was around the creation of many objects in tempdb. You probably don’t need missing index details on a bunch of temp tables. What a lot of people didn’t realize was that it also made SQL stop collecting them for every other database.

Here in 2015

That Trace Flag can still be enabled with the same effect. Some people may not be aware that it’s not fixing anything, and still hurting things. Below is a script to reproduce the lousiness in a user database.

First we’ll clear out missing index requests by rebuilding the index (you know this happens, right?), and verify that there are no missing index requests with sp_BlitzIndex®. Running it in @mode = 3 will generate only missing index request details.

USE [StackOverflow]

ALTER INDEX [PK_Users] ON [dbo].[Users] REBUILD;

EXEC [master].[dbo].[sp_BlitzIndex] 
    @DatabaseName = N'StackOverflow' , -- nvarchar(128)
    @Mode = 3

Once we verify that’s empty, we’ll run a query that will generate a missing index request in the Stack Overflow database, and verify it registers with sp_BlitzIndex® again.


SELECT @id =  id 
FROM [dbo].[Users] AS [u]
WHERE [u].[LastAccessDate] > 2015-01-01
ORDER BY [u].[LastAccessDate]

EXEC [master].[dbo].[sp_BlitzIndex] 
    @DatabaseName = N'StackOverflow' , -- nvarchar(128)
    @Mode = 3

Whaddya know? We got ourselves a missing index.

You look helpful! What's your name?

You look helpful! What’s your name?

Now comes the ugly

We’ll enable TF 2330 globally, and use some GO magic to run the same query 5x consecutively, then check back in on sp_BlitzIndex®.

DBCC TRACEON(2330, -1)



SELECT @id =  id 
FROM [dbo].[Users] AS [u]
WHERE [u].[LastAccessDate] > 2015-01-01
ORDER BY [u].[LastAccessDate]
GO 5

EXEC [master].[dbo].[sp_BlitzIndex] 
    @DatabaseName = N'StackOverflow' , -- nvarchar(128)
    @Mode = 3

The compiles ticked up one, but SQL stopped counting requests for the index.



There is a light

But hey! We can turn that off. And… Well, you know the drill.



SELECT @id =  id 
FROM [dbo].[Users] AS [u]
WHERE [u].[LastAccessDate] > 2015-01-01
ORDER BY [u].[LastAccessDate]
GO 5

EXEC [master].[dbo].[sp_BlitzIndex] 
    @DatabaseName = N'StackOverflow' , -- nvarchar(128)
    @Mode = 3

We have stopped breaking SQL!

1 + 5 = 6, FYI

1 + 5 = 6, FYI

What did we learn?

2005! What a lousy year for hair, and Trace Flags, and, uh, I don’t remember much else about 2005. Feel free to tell me what you hated about 2005 in the comments. Just check all your servers to make sure no one turned on this Trace Flag as an April Fool’s Day joke and then never came back from lunch, first.

Thanks for reading!

What Gear Do I Need to Make Technical Videos?

Today, I’m going to answer the #1 question I get when it comes to making technical videos: “What gear do I need to make my own videos?” I’ve put together three lists based on different levels of experience and production quality. These lists cover gear only, not essentials of producing a high-quality video, so keep in mind the more high-end list won’t create better results unless you have the skills to go along. This list also assumes you’ll be shooting in an indoor space (as opposed to shooting outdoors or on location).

Before you go shopping

You need to ask one very important question before you open your wallet:

Are you planning to shoot studio VIDEOS, WEBCAST, or both?

Making studio videos means:

  • More attention on you (or your props) as the presenter
  • Increased importance on visual elements like lighting, scenery, and depth of field
  • More eye contact expected as you present

Making webcast-style videos means:

  • More attention on the content shared on screen and less on you as the presenter
  • Decreased importance on lighting and scenery
  • Less frequent eye contact is okay

webcast (left) vs. studio style (right)

Your choice(s) here will drive what equipment you need to buy in order to produce a high-quality video on a reasonable budget. You don’t want to overspend on lighting and camera equipment if you’re never going to be shown bigger than a 240×180 pocket in the corner. Likewise, you may not need a USB microphone if you’re going to shoot mostly studio video.

Entry Level (< $250 budget)

This list is for you if you’re just trying out technical videos, not sure you want to make a significant investment, and are willing to buy better gear later on.


Your smartphone or tablet. No, really! Virtually any smartphone made in the last three years will have a camera capable of at least 720p video. This is perfectly good as a starting point, and it costs you nothing except a grip to hold it (like this one) and a tripod to mount it on.


Unless you want to rely on natural ambient light (subject to weather and time of day), you definitely need additional light sources you can move around. Fluorescent light kits are inexpensive, easy to work with, and don’t get burning hot even after hours of use. While softboxes are great for dispersing light evenly, avoid them at this price point unless you don’t intend to take them down. Low-end softboxes are very fragile, and repeated setup and takedown will shorten their lifespan considerably. I recommend you get a light kit with umbrellas instead.

Audio Recorder

Depending on your camera, you may be able to capture audio directly using an input jack and external microphone. This is very likely the case with your smartphone or tablet. If you decide to go with the webcam instead, whatever you use to record the webcam video should accept a USB microphone.


Anything, and I mean ANYTHING is better than the on-board mic of whatever you’re filming with. This is true of even the higher-end cameras. You want people to hear you, not your surroundings. On-board mics are omnidirectional, meaning they don’t focus in on any single direction.

You can go a couple of different ways depending on how much moving around you intend to do. If you’re going to be relatively stationary, a lavalier (lapel) mic will work well, even at a longer distance from the camera. The Polsen MO-PL1 lavalier microphone can be plugged into your computer or smartphone and has a generous 12-foot cord. If you are going to be moving your arms a lot and don’t want the mic to get bumped by your shirt, a shotgun mic is the way to go — something like the Rode VideoMic Go.

Enthusiast (< $1,000 budget)

This list is for you if you are:

  1. Reasonably confident in your commitment to making videos
  2. Willing to make a significant but not semi-professional level investment in equipment, and not interested in upgrading gear for a while

As soon as you leave the entry-level space, equipment costs escalate quickly. Production quality will be easier to improve because you’ll have more control over the audio and video capture process. Your gear will likely hold up a little better too.


You can go a few different ways here, buying either a camcorder like the Canon Vixia HF 600, a compact digital camera like the Canon PowerShot ELPH 300, or a DSLR camera. The camcorder will have one big advantage over the compact digital — a rotating LCD screen. Having a LCD screen you can see while you’re in front of the camera is a big time-saver because you get instant feedback on the framing of your shot. Without one, you won’t know if the top of your head was cut off in the shot until you record and play back. Make sure you get a camera that can shoot 1080p; most cameras are capable of that these days.

If you time your purchase right, you may be able to get an even better camera like a Canon T5i DSLR for just a little bit more than a compact digital camera. If you get that chance, pounce on it. The T5i and T6i offer high quality and user-friendly operation while giving you more creative control over your video.


For this level of investment, it’s worth getting better quality lights that will last longer during operation and survive repeated setup and breakdown. You probably also want to move from umbrellas to softboxes, which distribute light more evenly and produce less edgy light than umbrellas. The more of you that needs illumination, the bigger your softbox should be. Unless you’re doing close-ups, get at least a 24″ softbox, like these softboxes & lights from Interfit.


Like the entry-level setup, your choice of microphone depends on your own movements in your videos. If you aren’t going to move around much, you can go with a lavalier like the Sony. If you plan on moving your arms a lot or can’t be wired, the Sennheiser MKE 400 is a shotgun mic you can mount directly to the top of your camera.

Semi-Professional (< $2,000 budget)

This list is for you if you want to make videos with outstanding production quality, and are willing to invest in equipment for the long haul.


You don’t need to overspend to get an outstanding camera capable of sharp, colorful video at 1080p. The Canon Rebel T6i is the latest in a long line of T_i cameras that are incredibly popular among YouTube personalities for their ease of use and beautiful images. Seriously, there are YouTube celebrities with 100k+ subscribers that swear by them and are still using models as old as the T3i. They’re that good, and they’re very affordable.


It’s worth getting a light kit that allows you more control over how much light is produced, beyond just moving them closer or farther away from you. Get fixtures that have a dimmer switch, or in the case of fluorescent lights (that can’t be dimmed), multiple switches to turn some lights in the bank off. Having more control over light output will be helpful if you’re going to be doing chromakey (blue or green screen) work. The Flolight 110HM3 kit is a good option.

Audio Recorder

At this point, you’re better off not capturing audio directly to the camera, but instead to a separate device and then synching the audio in your editing application. The tradeoffs of having to sync audio are totally worth it. A dedicated audio recorder will have more options than your camera for adjusting the sound as it comes in. Higher-end microphones use something called phantom power, which simply means the recording device will supply the power to the mic (just like a USB device pulls power from the computer it’s plugged into). They also use XLR cables: thicker cables that are resistant to electrical interference. DSLR cameras don’t accept XLR inputs (roughly the size of a penny — too big) and even if they did, the input jack wouldn’t have enough juice to supply phantom power. Plus, you can have your audio recorder much closer to you than the camera, so your lavalier cord doesn’t have to reach all the way back to your camera.

With all this in mind, your best bet is to go for a portable audio recorder that accepts XLR inputs, like the Zoom H4n or Tascam DR-60D mkII.


With XLR inputs, you can go with a lavalier microphone, or with a shotgun mic mounted on a boom pole. With a lavalier, you don’t have to worry about the mic being in the shot because it’s perfectly normal to have it visible. With a boom-mounted shotgun mic, you can get it just outside the frame and still pick up great sound while having a little more freedom of movement than you get with a lavalier. Much more so than with the entry-level and enthusiast gear, the audio you capture will be crisp and clear. For a lavalier mic, a good option is the Sony ECM-44B. I used a shotgun mic, the Sennheiser MKE 600 (connected to the Tascam DR-60D) for my T-SQL Level Up videos and I love it.

Webcaster (< $500 budget)

If you prefer to make videos where you’re only a small part of the picture, you can get by with a smaller budget, especially for video. Proper lighting and clean audio are still important.


Go with the Logitech C930 webcam, especially if you’re on a Mac. The C920 has a nice picture but the software is only officially offered for PCs, not Macs. Both the C920 and C930 are 1080p capable.


Like the entry-level setup, a simple pair of lights and umbrellas will do the trick. Softboxes can be a little intense if you’re sitting at a desk and have them aimed right at you.

Audio Recorder

Whatever software you’re using to capture video and screen sharing will also capture audio. No need to buy a standalone device unless you choose to get a mic with an XLR connection.


The Blue Yeti is has excellent sound, provided you don’t aim it across a room. It’s wonderful for desktop recording from either mounted on the included base or hanging from a boom arm and shock mount. It connects using a USB cable, so no special connection is necessary.

What about software?

If you’re planning on doing any screen sharing, whether it’s flipping through PowerPoint slides or running a demo in a command prompt, you need something to record what’s happening on your desktop. The easiest option here is to get an application like Camtasia or Screenflow. Both have free trials, so test them out and see which one works for you. For what it’s worth, QuickTime has the ability to record desktop activity but from there, you still have to pull it into an editing app. Camtasia and Screenflow allow you to both capture and edit in the same app.

If you’re not doing any screen capture, you can go with the built-in applications for your operating system — either Windows Movie Maker or iMovie. Both are capable (though their features are limited) and easy to get the hang of. If you’re ready for a slight step up without going full-on pro with editing software, try Adobe Premiere Elements. It’s very affordable ($100 or less) and has a lot of the features you need without the complexity of Premiere Pro.

For more advanced users, Adobe Premiere Pro and Final Cut Pro (Mac OS only) offer a lot more power and flexibility, but they come at the cost of a much steeper learning curve. I wouldn’t recommend starting with them unless you’re seriously committed to spending the next several years learning the application as you go.

What about 4K?

It’s easy to get excited about making ultra-sharp 4K videos, but I’m here to tell you there’s a lot that needs to happen before you think about investing in a 4K camera. Before getting a camera, you need to:

  1. Decide that making videos is something you want to commit to.
  2. Learn basic lighting and sound skills
  3. Learn basic camera work
  4. Refine your personal style and screen presence
  5. Refine your lighting and sound skills
  6. Refine your camera skills
  7. Upgrade lighting and sound equipment if you have entry-level gear

Plan on these skills taking at least a year, maybe two. The good news is by then, more people will have 4K-ready monitors. And you will have learned enough about video production to make a well-informed decision about which 4K camera is right for you.

No matter where you go, there you are

It’s easy to get carried away with buying video gear. Remember why you’re doing this — to share a message with your viewers. If you focus on great gear but don’t work on your content or delivery, you’ll be wasting your time and money. Don’t massively over-buy; get the gear you need for what you can do today and tomorrow. When your video-making skills have sharpened and it’s truly the gear that’s holding you back, you’ll know precisely what to shop for, and you’ll have some idea if your videos will support a higher budget.

Stop People From Changing Tables with This One Trick

Developers hate his bad idea jeans:


Presto, the schemabinding option means no one can change the underlying tables. (At least, until they figure out about your view.)

Obligatory disclaimer: seriously, this is a really bad idea. But it’s hilarious.

Why is SQL Server Slow Sometimes – But Only Sometimes?

Have you got a SQL Server that usually performs just fine, but every now and then, everything falls to pieces? Users complain about performance, and then minutes – or hours – later, the problem just mysteriously solves itself?

Here’s a few things to look for:

Are data or log files growing? When SQL Server needs to grow a file, it can bring all transactions in that database to a grinding halt. You can mitigate this issue by turning on Instant File Initialization, pre-growing out your data and log files, and using smaller autogrowth sizes. To figure out if this is your root cause and which cure makes the most sense, run sp_Blitz® and look for the warning about data and log file growths that have been taking more than 15 seconds.

Are queries being blocked? If one query takes out a lock that prevents other queries from getting their work done, it presents interesting symptoms. Your SQL Server’s CPU use might look low – but it’s because so many queries are sitting around idly waiting. To diagnose, start by running sp_AskBrent® with the @Seconds = 0, @ExpertMode = 1 parameters to check your wait stats since startup. If LCK* waits are significant, then start digging at the database level. Run sp_BlitzIndex® in each database, and look for the Aggressive Indexes warnings about indexes that are a frequent blocking sore spot. Consider dumping indexes you don’t need on those tables (to speed up deletes/updates/inserts), and adding the right indexes that you do need (to speed up other queries).

Sometimes I choose the wrong coffee tap, and I'm predictably slow.

Sometimes I choose the wrong coffee tap, and I’m predictably slow.

Are queries being rolled back? If a query fails – either due to being canceled, or running into an error, or hitting a deadlock – SQL Server has to undo their work. This may cause blocking, or it just may hammer storage. This one’s a little trickier to catch. If you run into it live, then you can see it with sp_AskBrent® – it warns about queries that are currently rolling back.

Did a bad plan get into cache? When you run parameterized SQL, SQL Server builds an execution plan based on the first set of parameters it sees. Normally, parameter sniffing is a good thing, but sometimes it goes awry. You can have a plan get pushed out of cache (due to memory pressure or statistics changes) and then get compiled based on the first – possibly unusual – set of parameters that come in. That plan might not work so well for other sets of parameters, and it can degrade performance on the whole box until a new plan is generated for it. You can learn more about solutions in this blog post about parameter sniffing, and to diagnose it, run sp_BlitzCache®. Look at the top resource-consuming queries, and see if an unusual one has suddenly jumped to the top of the charts.

Are shared resources under pressure? In virtualization environments, other guests may be using an increased amount of CPU, memory, or storage throughput, giving your guest less horsepower. In shared storage environments, other servers might be doing backups or disk-intensive workloads. In multi-instance servers, another instance on the same box might be the real culprit. To identify these, check out wait stats with sp_AskBrent®.

Looking back at what I’ve written, I’m sure someone’s going to say, “Brent, you’re just trying to pitch tools.” And sure, I am – they’re free. I want you to use the same powerful tools that we use every day in our consulting. Your job is hard enough without reinventing the wheel!

Announcing Our 2015 Black Friday Sale on SQL Server Training

You need SQL Server training, but your boss is too cheap to pay full price, and you’re willing to stay up late and join in on a mad rush for good deals.

Have we got a deal for you. Several deals, in fact, and this year we’re announcing them all ahead of time so you can get your budget approval on:

Midnight Doorbusters:

  • $1 seats for in-person training classes – just 3 seats per class title will be available (3 for The Senior DBA Class of 2016, and 3 for SQL Server Performance Troubleshooting). You can buy your seat in any of the cities/dates we’re offering. – SOLD OUT
  • 50% off in-person classes for the first 20 buyers – if you don’t get in on the $1 coupon, you’ve still got a good shot at saving thousands of dollars. – SOLD OUT
  • 75% off video training classes for the first 75 people – you can buy as many videos as you want, too! – SOLD OUT

As a reminder, here’s the 2016 in-person class lineup:

SQL Server Performance Tuning with Brent: 5 days, $3995:

  • February 22-26 in San Diego
  • April 11-16 in Newark
  • June 6-10 in Chicago
  • August 15-19 in Portland
  • December 5-9 in Philadelphia

The Senior DBA Class of 2016 with Brent: 5 days, $3995:

  • January 11-15 in Newark
  • March 7-11 in Chicago
  • May 2-6 in Denver
  • August 1-5 in Philadelphia

All day long deals:

There’s no cap on these awesome deals – even if you miss the doorbusters, you’ll still be able to get these all day long:

  • How to Think Like the Engine – absolutely free all day with coupon code freeengine. Add it to your cart and check out, and you’ll get 18 months access at no cost.
  • 50% off video classes (not bundles) with coupon code douglovesmovies
  • 25% off in-person classes with coupon code angielovesharrypotter
  • $499 Everything Bundle – that’s a $1,553 value at 68% off.

The Fine Print

To get these deals, you’ll need the coupon codes – which we’ll announce on our company Twitter account, @BrentOzarULTD, at midnight Chicago time as we cross between Thursday, Nov 26th, and Friday, Nov 27th. Here’s a world clock calculator to show the time in your time zone. The all-day-long deals will be all day in the Chicago time zone.

You don’t have to follow us on Twitter – you can just refresh that page if you want – although of course you probably won’t catch it as quickly as our Twitter followers, and timing is everything on a sale like this. The doorbuster coupons typically sell out in the first 60 seconds.

Coupons are limited to one use per person, one time each, with no stacking. (That means if you try to buy 3 of the same course, the coupon won’t work, and someone else will sneak in ahead of you and score. Same thing if you try to use multiple coupons at once.) Coupons are not valid on already discounted items like bundles. All sales are final – here’s the terms and conditions.

If you get an error during the checkout process, that means someone else grabbed the coupon before you. It’s entirely first-come-first-serve, with no rain checks.

The eagle-eyed amongst you will notice a lineup change in our 2016 classes, too: Brent will be the only in-person training instructor next year. Jeremiah and Kendra will still see you at conferences and user groups, though.

Go check out the courses to think about what you’ll buy. Have fun!

Is My SQL Server Too Big for Virtualization or the Cloud?

Let’s set size aside for a second. Here’s the order in which you should try new technologies – whether it’s virtualization, cloud, storage, or whatever:

  1. Development servers with less than 100GB of data
  2. Production servers with less than 100GB of data
  3. Development servers with <1TB
  4. Production servers with <1TB
  5. Development servers with >1TB
  6. Production servers with >1TB

It’s simple: start with the lowest risk, easiest-to-manage servers first. Learn your lessons on smaller servers, then gradually use the technology on larger and larger servers.

If at any level, your users complain about performance and you can’t figure out how to fix it, stop at that level. Don’t go farther.

It’s not that 1TB of data is too big to virtualize or to move into the cloud – it’s not. But your skills may not be up to the task, and you need to sharpen those skills before you attack a larger performance problem.

It all comes back to my post, “How Many Databases Can I Put on a SQL Server?”

What kCura Relativity Best in Service Means for SQL Server DBAs


kCura Relativity is a legal e-discovery application that hosts its data in SQL Server. You can host it yourself, or hire a hosting partner who specializes in hosting it for you. The best hosting partners compete for Best in Service status, an award that means what it says on the tin.

Starting this year, kCura’s toughened up the requirements for Best in Service. It ain’t Average in Service, or Good Enough in Service. As a result, database administrators have some extra work to do.

Best in Service requires a disaster recovery plan.

Deep, calming breaths. I didn’t say a warm standby data center – I just said a plan. It might be perfectly okay for your plan to be, “Step 1: panic. Step 2: call Brent to bring our databases back from the dead.”

Here’s the thing, though: at some point, one of your customers is going to ask to see the plan. (I know, because I’ve been involved in some of those conversations.) You don’t want to show them a plan that looks that way.

Use these resources to get started:

Best in Service Requires Transparency

kCura’s all about transparency, right down to the Trust portal that shows Best in Service partner service status. Today, publishing your scores is optional – but come summer, it’s going to be mandatory.

That means if you miss backups or DBCCs, the whole world’s gonna know.

And it’s going to cost your business real money.

I’m wildly excited about this because it brings business focus to a very important DBA job duty. It’s your job to make sure the data is safe and secure. Start measuring it and checking today before you have awkward management conversations this summer.

#FreeCon 2015 PASS Summit Recap

We believe that when you’re at a community event, the most valuable thing isn’t what’s up on the screen. Instead, it’s building relationships with the people around you.

With that in mind, over the last five years, we’ve run a series of FreeCons – totally free networking events for the SQL Server community.

This year’s FreeCon at the PASS Summit in Seattle was our most ambitious yet. We rented out a movie theater for 50 folks and shared:

  • Identifying what you’re proud of now, and sharing that with those around you
  • Setting goals for yourself over your next year
  • Learning about personal branding
  • Understanding the difference between outbound and inbound marketing
  • Planning which inbound marketing tasks to do, in which order, and how long they’ll take
  • And of course, throughout the event, sharing all of that with those around you, and building meaningful lifelong relationships

We’re really proud of the results and the reactions:

Ed Leighton-Dick wrote: “For many years, I focused primarily on the technical aspects of my profession. That focus served me well, but I realized several years ago now that I needed to start developing some soft skills, also. Skills such as marketing have continued to elude me, but yet, they have become critical as I build my consulting practice. Thanks to Brent and Kendra for all their work in putting on the FreeCon, and thanks to all the rest of the attendees for a fantastic day – I learned a lot from all of you!”

Chris Yates wrote: “One thing that stuck out to me was the authenticity shown by both Brent, Kendra, and Doug along with the 50 or so of us who were asking questions.”

And Richie Rump tried to follow along:

Dazed and Confused at the #freecon. Need more sleep and coffee. #summit2015 #summit15

A photo posted by @jorriss on

Thanks to everyone who joined us – you were really the secret to making this event a lasting success.

SQL Server Features I’d Like To See, PostgreSQL Edition


That’s right. PostgreSQL is basically free. The MIT license is like the Church of England of licenses. They do not care what you do.

But I care what they do! If you read the first part of this article, you saw some Oracle features that I wish SQL Server had. Over here, I’ll be talking about some cool stuff PG does that SQL doesn’t do. At least not ‘natively’. There are workarounds, but we’re still getting some circles run around us.

So here goes!

Unlogged Tables! Forget wrestling with minimal logging, which sometimes just doesn’t work, no matter which Trace Flags and hints you throw at it. You can just tell the engine you don’t care about this table and it won’t log any transactions for it. Yeah, put that in your ETL and smoke it.

Generate_series! This is one of those things that I used, and then spent hours playing with. You know all that crazy stuff we do with Tally Tables and Date tables? Yeah, PG users just use generate_series, and it spits out the range of values they want. It works with numbers and dates, and even handles intervals. It’s pretty wonderful. Sick burn.

Arrays! Between array_agg and UNNEST, PG offers simple ways to handle a couple things that SQL Server users spend a lot of time trying to hack together T-SQL and CLR methods to deal with. If you’ve ever been mortified and confused by those SELECT STUFF FOR XML PATH shenanigans we use to create lists/arrays, or read one of the bounty of articles and arguments about splitting strings in SQL Server, you’d probably buy features like this a steak dinner.

BRIN Indexes! As a guy who has dealt with a lot of large tables, and large indexes, something like this is really awesome. A Block Range Index basically stores high and low keys for each, you guessed it, Block Range within the index, and decides which blocks it needs based on those values. The upside is that indexes of this type are TINY compared to traditional indexes. It’s a lot more like scanning the statistics histogram to figure out which steps you need, and then retrieving those steps.

Multiple language stored procedures! Yep. Write a stored procedure in a language you’re comfortable with. Tell PG what the language is at the end of the stored proc, and it will use it. If you’ve ever used CLR, and struggled with .dlls and trustworthy and blah blah blah, this probably sounds like a dream.

MINDOP! Just kidding. But I do wish we had this. It’d be way more useful than, like, Service Broker, or Resource Governor, or Affinity Masking, or Priority Boost, or… I’m getting carried away. Apologies; Parallelism riles me.

Anyway, I hope you enjoyed these, and I hope that you’ll give other database systems a look. There’s some pretty cool stuff out there.