GroupBy – Free SQL Server Training is free technical training by the community, for the community. Volunteer speakers submit abstracts at and you – the attendee – vote to pick the sessions. Want to present your own session or just vote on others? Join us at
RSS Feed
GroupBy – Free SQL Server Training



All Episodes
Now displaying: August, 2017
Aug 29, 2017

Imagine your Data Warehouse is growing exponentially to multi-terabytes and you have been tasked to make analytics queries even faster while keeping the cost of storage low. Industry leading SQL Server 2016 columnstore technology can help you solve these by reducing the storage footprint by 10x (average) and speed up analytics queries up to 100x. SQL Server Tiger team has leveraged columnstore technology with many Tier-1 workloads to achieve these goals. This session will cover three different types of workload. For each workload, we will cover the application architecture, challenges and how SQL Tiger team used columnstore index technology to address them.

Aug 22, 2017

I was required to prove that I had successfully installed and configured a backup solution across a large estate. I had a number of success criteria that had to be met. Checking all of these by hand (eye) would have been error prone, so I wrote a test to do this for me and an easy for management to read HTML report using PowerShell and Pester.

The session has come from that situation and is about enabling you to provide an easy to read output to quickly and repeatedly show that infrastructure is as expected for a set of checks, also known as Operational Validation using Pester. There are many use cases for this type of solution; DR testing, installation, first line checks, presentation setups

What is Pester?

Pester is a Unit Testing framework for PowerShell which can be used for testing your code but also as shown in this session for validating your infrastructure. This is an excellent post by Adam Bertram to introduce Pester It is included with PowerShell on modern Operating Systems and free to download from the PowerShell Gallery or GitHub if not included.

After this session, you will have a basic understanding of how Pester works and the capability to examine your checklists and create your own validation tests and provide some reporting for management.


Aug 15, 2017

Attendees will be taken through the following:

  • Defining what containers are (benefits and limitations)
  • Configuring Windows Server 2016 to run containers
  • Installing the docker engine
  • Pulling/Pushing SQL images from/to the docker repository
  • Running SQL Server containers
  • Committing new SQL Server images
  • Exploring 3rd party options to run containers on previous versions of Windows Server (real world example)
Aug 8, 2017

How do you know your database change won’t affect something you haven’t thought of?

Database objects can have many dependent objects in the database and in the application. Keeping track of these dependencies can be difficult, especially if the database is used by multiple applications or services.

The first step is to have a project for the database and get it into source control.

Source control is the single source of truth that all deployments should be kept in sync with. Source controlling the database also acts as the foundation for automation of:

  • Builds
  • Tests
  • Coverage Reports

This automation is key to the Continuous Integration methodology. After every commit, builds and tests will run in the background and only alert if there is a problem. Builds test the deployment of the change and tests check that everything affected still works. Coverage reports indicate any gaps in the testing suite.

The tools I use to make this possible with SQL Server are:

  • Redgate’s ReadyRoll plugin for Visual Studio to build migration script
  • GitLab for source control and project management
  • tSQLt for unit tests
  • SQL Cover for unit test coverage reports

By the end of this session, I hope you will see how a CI approach to database development can remove the unknowns from deploying database changes.

Aug 1, 2017

The war between DBAs and developers has been raging since the dawn of relational databases. One reason for disagreement comes from developers who want to store their data in JSON because it is fast, standard, and flexible. DBAs cringe when they hear of long text strings being stored in their SQL databases; they cry with concern, “No data validation? No schema binding?”. Is there any hope for these two warring factions to see eye-to-eye?

This session will explore the new JSON functionality introduced in SQL Server 2016. We will use T-SQL examples to learn how these functions can be used to parse, create, and modify JSON data. More importantly, we will discuss how to optimize performance when using these functions.

By the end of this session DBAs and developers will know how to efficiently work with JSON in SQL Server 2016. It will also usher in an era of peace between DBAs and developers…

… at least until someone brings up the topics of cursors, NOLOCKs, or Entity Framework.

Get full session notes, resources and more here: