Monday 9:00 AM - 5:00 PM · Room 344
Database Administration for the Non Database Administrator
In this all day session on Microsoft SQL Server we will be learning about how Microsoft SQL Server works, both in Azure and on-premises, and what needs to be done to keep it up and running smoothly when you don't have a full-time database administrator on staff to help you keep it running.
In this session, we will cover a variety of topics, including backups, upgrade paths, indexing, database maintenance, database corruption, patching, virtualization, disk configurations, high availability, database security, database mail, anti-viruses, scheduled jobs, and much, much more.
From a product perspective, we'll examine SQL Server in an Azure VM, Azure SQL DB, and Azure SQL DB Managed Instance, as well as the on-prem options, including SQL Server on-premises options, including Azure Arc hosted deployments.
After taking this full-day session on SQL Server you'll be prepared to take the information that we go over and get back to the office, get the SQL Server's patched and properly configured so that they run without giving you problems for years to come.
Tuesday 9:00 AM - 5:00 PM · Room 320-321
Intro to T-SQL Data Manipulation Language
From early database management systems to modern data platforms like Microsoft Fabric, SQL has withstood the test of time. This language can be powerful in its navigation of data relationships, calculation of detailed or aggregate values, or adjustment of records stored in tables. All of these capabilities fall under the term Data Manipulation Language (DML). This language can enable many data practitioners, from engineers and citizen developers, to harness their data and bend it to their needs.
Suppose you have not had the opportunity to learn SQL DML and would find use for your work. This introductory course to Microsoft's version of SQL, called Transact SQL or T-SQL, is a great place to start. Join this workshop to learn T-SQL DML from the ground up, starting with the SELECT statement and all of its primary clauses.
Tuesday 9:00 AM - 5:00 PM · Room 348
Execution plans explained
You probably have some tricks up your sleeve for dealing with slow queries. Index the columns in the join and where. Rewrite the WHERE clause to enable index usage. Tinker with the join order, or perhaps even break up the query in smaller parts. Those tricks work. Sometimes. Not always. And when they don't, your job suddenly gets frustrating!
Sometimes, you wish you knew WHY a query is slow. So that you can target your changes exactly right, at precisely the root cause of the slowness. And the good news is, there already exists a way to find the root cause of bad performance. You "only" need to learn to work with execution plans
In this full-day workshop, you will learn everything you need. You will learn what execution plans are, and where you can find them. You will learn the basics of how to read execution plans. And you will learn all you need about all of the commonly encountered operators in execution plans: what their function is, how they operate, and what effect that has on performance.
In short: After attending this workshop, you will know how to obtain an execution plan for a slow running query, and you will know how to look at that plan and find the spot where it hurts, so that you know what to do to fix the performance issue.
Regardless of whether you have never seen an execution plan before, or whether you already have experience working with execution plans, this workshop will teach you how to look at an execution plan and then KNOW why your query is slow ... and what you can do to fix that!
Tuesday 1:30 PM - 5:00 PM · Room 347
Query Store and Azure SQL Copilot, who is the fairest in the land?
Query store + Azure SQL Copilot, which is the baddest query in my instance.
On-premises or Azure, it doesn't matter, Query Store will help you finding out how your queries are performing.
Get your performance to the next level knowing how to digg into Query Store data. Understand how it works, and how you can use Query Store data to solve performance issues and detect problems before they create a situation.
Do you want to know how to mine Query Store: plans, queries? Learn how to get the best of it in an instance with several databases.
We will also discuss the available options for troubleshooting using Azure SQL Copilot
Based on Microsoft support experience.
Wednesday 8:30 AM - 9:40 AM · Room 348
Infrastructure for Data Professionals: An Introduction
It doesn’t matter if you are a Junior DBA, an accidental DBA or all the way up to a Senior DBA, the infrastructure your SQL Server environment runs on is important. Many among the DBA community came in as developers or perhaps directly into database administration roles it is equally possible that you have been out of the operations world long enough to have fallen out of the loop with what is happening. This session is intended to provide a full stack infrastructure overview so that you can talk shop with your cohorts in operations to resolve issues and maybe even be proactive. We will discuss, in an introductory fashion, hardware, network, storage, virtualization and operating system layers. Additionally, some suggestions as to where to find more information will be provided.
Wednesday 10:20 AM - 11:30 AM · Room 343
Indexing Internals for Developers & DBAs
What are the secrets to making your queries run faster? Why does SQL Server use an index for some queries and not for others? What makes a good index? How many indexes should I have? Have you ever asked these questions? When you want to understand an application you look at its core architecture. Underneath the covers SQL Server is just a C++ application. Together we will discuss how the application architecture of SQL Server works, and how to apply this logic to building the best indexes for your queries.
Wednesday 10:20 AM - 11:30 AM · Room 347
Deployments aren’t enough – databases deserve a development process
How quickly can you take your database and examine its code? Database-as-code is not a new concept, but all too often we focus only on being able to apply changes to the database instead of having a development process that ensures that we’re making good database changes. A more wholistic development process offers early warnings of antipatterns via code analysis and increases our confidence even on mature databases with deployment “practice runs” and unit tests. In this session we’ll discuss the components of a database development cycle through the lens of Microsoft.Build.Sql projects and what capabilities we should expect to deliver database object updates easily and more reliably.
Wednesday 2:00 PM - 3:10 PM · Room 343
Now Where Did THAT Estimate Come From?
The SQL Server Query Optimizer makes its plan choices based on estimated rowcounts. If those estimates are wrong, the optimizer will very likely produce a poor plan. And there's nothing you can do about it. Or is there? In this session, you will learn exactly where these estimates come from. You will gain intimate knowledge of how statistics are built and maintained and how they are used to estimate row counts. But you will also learn how filters and joins influence those estimates. Though the focus of this session is on understanding the cause of bad estimates, you will also learn ways to fix the problems and get better estimates - and hence, better performing queries.
Wednesday 2:00 PM - 3:10 PM · Room 344
PowerBI, DirectQuery and SQL Server. It is a good choice?
You will learn best practices, tips and tricks on how to successfully use SQL databases (OnPremise,IaaS, PaaS,SQL Managed Instance) with PowerBI on production environments.
How improve the performance, using for example, Read-Scale, HyperScale or Synapse, partitioning, ColumnStoreIndexes, Indexed views, etc..
How to monitor and diagnostic your database and find out issues with Query Data Store. These learnings are fruit of Microsoft CSS support cases, and customer field engagements.
Wednesday 2:00 PM - 3:10 PM · Room 347
Learn how to troubleshoot SQL Server like a Microsoft engineer would
How many times have you wished that you could self-diagnose a really strange issue with your SQL Server, that did not seem to be related to typical reasons like missing indexes, query plans, lock blocking, etc.?
- Maybe you are seeing unexplained high CPU usage.
- Maybe you have blocking, but it's on a really strange wait type that you've never seen before and does not show up in your web searches.
- Maybe you are seeing unusually high memory consumption in a memory clerk that you have never heard of?
You get the idea - all of us have had these head-scratching moments. Having the right tools and techniques at your disposal is crucial for diagnosing and resolving these issues efficiently and on time. Join us for an in-depth exploration of SQL Server extended events, wait statistics, call stack information, and debugging symbols. We will demonstrate how to leverage these powerful tools to gain a comprehensive understanding of the root causes behind various issues like the ones described above.
This will not be an introductory or general troubleshooting session. It assumes that you are familiar with the usual tools of the trade and want to know more. In other words, you are asking yourself - "can I do what the Microsoft support engineer would do"?
Through real-world scenarios and hands-on demonstrations, you will learn how to apply these tools effectively to diagnose and resolve SQL Server performance issues. By the end of this session, you will be equipped with a robust toolkit which will help you get a deeper understanding of SQL Server internals. And who knows, you might just be able to skip that support call to Microsoft and be the hero who saved the day!
Wednesday 4:00 PM - 5:00 PM · Room 320-321
Everything you need to know about Data Virtualization in Azure SQL Database
Learn everything you need to know about Data Virtualization, OPENROWSET, External tables, parquet, Delta, best practices, how to access external data using Azure SQL Database, export cold data, and create your very own data tiering solution.
Wednesday 4:00 PM - 5:00 PM · Room 343
Code Changes That Eliminate SQL Server Performance Complaints
Your queries are running so slowly that people are upset. You need some help!
Over the past twenty years, I have focused my career on SQL Server performance and query tuning. I have learned that you can rewrite slowly running queries to get the same results while significantly reducing compute and run-time. Most slowly running queries fall into familiar patterns DBAs like to call Anti-Patterns. We will cover how to identify several patterns and include solutions you can implement to improve your query performance today!
Wednesday 4:00 PM - 5:00 PM · Room 347
Worst code ever! Reviewing real-world examples that mandated refactoring.
This session looks at SQL Code that couldn't be tuned without a rewrite, working through why it was bad, why the optimizer couldn't deal with it appropriately, and what needed to be done to fix it.
Thursday 8:30 AM - 9:40 AM · Room 320-321
TSQL Best Practices Through Behavior Analysis
Ever wonder why your query behaves a certain way? Looking at the behavior of your query can lead you down a path to tuning. As with all queries, different servers will behave differently. With all those permutations (CPU, Memory, disk type, etc.) you can easily give up. But with these best practices you learn here, you have a shot at getting more consistent behavior by following them. I will show you what to look for and how to affect the behavior through better TSQL. Join me in a quest to write and tune queries by looking at how they behave.
Thursday 8:30 AM - 9:40 AM · Room 340-341
Real Time Monitoring with Real-life Use Cases using Database Watcher
In this session, we are going to show you how easy it is to use Database Watcher, a cloud-native and cross-platform solution that supports multiple database types, versions, and platforms, to set up proactive database monitoring and collect deep and rich data. You will see how Database Watcher provides easy to understand visualizations, with near real time monitoring, which can help you optimize your database performance, availability, and health.
During this session we will cover the following with you:
- Brief overview of Database Watcher architecture
- Delve into real scenarios with Database Watcher dashboards
- Create custom dashboards for custom scenarios
- Using the power of KQL to query the raw monitoring data
Join us in this session and discover how Database Watcher can help you take your DBA career to the next level by enabling you to proactively monitor, troubleshoot, and improve your database operations.
Thursday 8:30 AM - 9:40 AM · Room 343
Performance and execution plan improvements in SQL Server 2025
SQL Server 2025 was announced in November 2024, and will probably be in preview, or perhaps already released, at the time of this conference. Join execution plan expert Hugo Kornelis as he takes an in-depth look at all the new features that affect query performance and execution plans.
Thursday 12:40 PM - 1:50 PM · Room 343
A Query Runs Through It: An Introduction to the SQL Server Engine
Have you ever wondered what happens inside SQL Server when you execute that query you wrote? This session will serve as an introduction to what is going on under the hood, commonly called SQL Server Internals. Whether writing queries or tuning them, SQL Server internals knowledge is highly valuable in Azure VMs or SQL DB, AWS, GCP, and on-premises as the SQL Server engine is the same. Together we will dip into why data types matter, ponder pages, sample the storage engine, and ponder the query processor as we see what happens when your query runs.
Thursday 4:00 PM - 5:10 PM · Room 342
Indexing for Performance
What does the optimizer actually do with an index, what do the index structures look like, and what can e do to optimize index performance? This session covers index internals and optimizer limitations
Friday 9:00 AM - 10:10 AM · Room 343
Approximate functions: How do they work?
Sometimes, a close approximation is good enough. And sometimes, a close approximation is a lot faster. Microsoft has introduced “Approximate Query Processing” (the APPROX_COUNT_DISTINCT and APPROX_PERCENTILE functions) to give you exactly that benefit when you don't need exact answers.
But do you have a good response when you propose to use this function and your manager asks you to explain how they work first? Or is your only option to claim "black magic by smart Microsoft engineers"?
The algorithms used are not a secret. HyperLogLog and KLL Sketch. And now you most likely know exactly as much as you already knew before. And when you google for those terms ... you end up with a headache.
Time to join me for a session where I explain the black magic in the simplest possible terms, so that you can then explain it to your manager!
Friday 1:50 PM - 3:00 PM · Room 343
Wait Wait Do Tell Me: A Look At SQL Server Wait Stats
Hurry up and wait, it happens to all of us, even SQL Server. Why is SQL Server waiting? What can we do about it? These questions will be addressed as we define what a wait really is in SQL Server and some approaches to make SQL wait less. This session, targeted at data professionals, managers, developers, and sys admins, will also explore a few of the common SQL waits and specifically what we can do about them
Friday 1:50 PM - 3:00 PM · Room 347
Introduction to SQL Server Essential Concepts
When I first started learning about SQL Server, really deeply learning, there were a few “key” concepts that you hear repeated often by top speakers and SQL MVP’s. Internals, recovery models, and backups. They are interconnected. As the learning continued, it was self-evident how understanding basic data internals with pages, extents, and allocation bitmaps or database recovery models, the transaction log, and VLF’s or advanced backup options backups like stripping and piecemeal restores affected the uses of SQL Server. They affected not just SQL Server but the way you make decisions in order to determine how best to use SQL Server to support your business. This session enables you to have that core set of understanding required for advanced SQL learning.