Practically Normal: An Introduction to Normalization

Normalizing a database – splitting apart tables into simpler, more focused tables – can yield concrete benefits, including manageability, scalability, and space savings.  The concept is a central tenet of a relational database system such as SQL Server, yet far too many database professionals are unfamiliar with it.  This session will present a practical primer on normalization: what it is, why it’s beneficial, how to do it, and when not to do it.

Service Broker: The Queue Continuum

Pop quiz: How can SQL Server help developers build scalable, distributed, and asynchronous applications?  Service Broker is the answer!  In this presentation, I’ll show you what it is; talk about when and why you might want to use it in your applications; walk through an example of how to set it up; and share a few lessons learned from our successful implementations.

Presentation files: Service Broker – The Queue Continuum – 9/20/2014

Get Involved!

SQL Saturday is a great place to learn more about SQL Server. But did you know that it’s just the tip of the iceberg? There are a number of places you can learn about SQL Server and just as many ways to share what you’ve learned with others. Most don’t even require a lot of time or money. The SQL Server community is vibrant and growing, and it needs your voice. Come to this session to find out how you can get involved!

Presentation files: Get Involved! – 7/27/2013   Get Involved! – 9/14/2013

SQL Server Features That Will Blow Your Mind!

How many lines of code does it take to generate a running total? How would you find a value in the next row of data – without using a cursor or loop? How can you efficiently store rows of data with a lot of optional fields, and how can you quickly find which of those rows have values? And how can you eliminate locking without resorting to dirty reads? SQL Server has answers for all of these questions, and none requires more than a few lines of code. Give me an hour, and I will blow your mind!

Presentation files: Features – 10/25/2014

Database Source Control Adoption Challenges and Opportunities

Source control is a way of life for developers – it’s a way of sharing code, of protecting our work, and of saving our bacon when things go wrong.  So why aren’t you using it with your database?  Technology used to be a major issue for many companies – there were few available solutions, so those that did implement database source control had to cobble together their own systems.  That issue has been largely overcome in recent years with the release of lifecycle tools like Red Gate’s.  However, the business challenges remain, and they can be quite intimidating, to say the least.  In this session, I’ll describe some of the challenges I’ve seen, and we’ll discuss how the opportunities that lie beyond make the implementation of source control worthwhile.

Presentation files: DBSC

Extending Your Availability Group for Disaster Recovery

Did you know that SQL Server Availability Groups can be a great solution for disaster recovery?  Availability groups have become well known for their high availability capabilities, and for good reason: they work well, they remove some of clustering’s limitations, and they are fairly straightforward to setup.  Extending an availability group to multiple sites for disaster recovery becomes more complicated.  A lot of moving parts have to come together for it to work properly – SQL Server, Windows, Active Directory, and DNS all get involved in this advanced configuration.  In this session, we’ll discuss some of the factors that complicate a multi-site availability group deployment, and we’ll walk through a multi-site deployment so you can see how it’s done.

Presentation files: Extending AG for DR – 5/30/2015

Protecting Your Data with Encryption

We’ve all seen the recent news stories about companies whose data has been stolen by hackers.  What was once a rare event has become all too common, and companies large and small are at risk.  While it isn’t always possible to prevent intrusions, you can reduce the risk by encrypting your data.  In this presentation, I’ll show you the four ways that SQL Server provides to encrypt data: hashes, cell-level encryption, database-level encryption (also known as transparent data encryption), and backup encryption.  We’ll also discuss the keys required for each type of encryption and discuss how to protect the keys themselves.

Presentation files: Encryption – 5/9/2015

Dammit Jim! Dr McCoy’s Field Guide to system_health (and the default trace)

As DBAs, we are asked all sorts of impossible questions.  Who dropped that important table last month?  Why was everything slow last week?  Who made that user a sysadmin?  You’d have to be a mind reader to know the answers to some of those, right?  Not necessarily!  SQL Server can help you find information about these and other common problems with its default trace and system_health Extended Events session, but you have to know how to collect and interpret the data they provide.  In this session, we’ll explore what system_health and the default trace are, what information they contain, and how to use them to find the answers you’re searching for.

Presentation files: Field Guide to system_health – 3/5/2016

Understanding SQL Server 2016 Always Encrypted

Always Encrypted is a highly-touted new feature of SQL Server 2016 that promises to make encryption simple to use and transparent to applications while still protecting the data both at rest and in motion, even from high-privilege users such as developers and DBAs.  Does that sound too good to be true?  It isn’t – Always Encrypted is an incredible feature – but like any new technology, it does have some limitations.  In this session, you’ll see how to configure Always Encrypted, and we’ll talk about when you should and shouldn’t use it in your environment.

Presentation files: Always Encrypted – 4/9/2016