I enjoy speaking about SQL Server, whether it’s at user groups, remote presentations, webinars, or just in passing at events or in casual conversation. Here’s the list of sessions I am currently presenting. Please let me know if you’re interested in having me speak for your group via my contact page.

Available Sessions

Time Travel with SQL Server 2016 Temporal Tables

In many industries, it is necessary for data professionals to be able to show what a data set looked like at a previous point in time. Whether it’s calculating insurance or tax rates based on a policy date, quickly comparing data changes over time for trend analysis or just recovering from an accidental data change, it’s useful to be able to look back in time through our data. Solutions like Change Data Capture or trigger-based audit tables are usually slow, and require a lot of extra code to be effective. SQL Server 2016 introduces system-versioned tables, also known as Temporal Tables, which track data through time with far less overhead than other solutions. In this session, you’ll learn how to create temporal tables, how SQL Server manages data within those tables, and how to query data at a specific point in time using several real-world examples. Attendees will leave with a fundamental understanding of practical use cases for temporal tables and the knowledge to implement them.

Turbo-Charged Transaction Logs

The transaction log is one of the most critical, yet often misunderstood components of SQL Server. From out of control log growth to very long startup times, problems with the transaction log can cause a lot of pain. In this session, we’ll look at how the transaction log works and how to optimize it’s performance. You’ll learn how to determine the right settings for maximum throughput, and what to do when things get out of control.

Understanding and Handling Database Corruption

Database corruption is simply a fact of a DBA’s life – if you haven’t seen it yet, you will. Success or failure depends on having a solid plan to deal with different types of corruption. In this session, we will discuss usage of related DBCC commands such as DBINFO, CHECKDB and PAGE. You’ll learn how to monitor for corruption with SQL Agent Alerts and Jobs, and when it’s time to restore instead of repair. After attending this session, you will be able to check for issues such as page corruption or data purity problems, and take the appropriate measures to deal with them.

Wait Statistics: The Top 5 Waits You Should Know

Wait statistics are a great tool for troubleshooting performance problems in SQL Server. However, there are so many different wait types in SQL Server, it can be challenging to determine what to focus on and what can be ignored. Even after discovering that SQL Server is waiting for something, most DBAs don’t know where to look next. In this session, we’ll examine 5 of the most frequently seen wait types in SQL Server and how to troubleshoot each of them. You’ll learn how to determine the root cause of a particular wait type, and how to avoid common mistakes made when troubleshooting with wait statistics.

The Usual SUSPECTs: When Good Databases Go Bad

You just restarted SQL Server, and some of your databases aren’t coming online. Maybe you see a database marked SUSPECT, or RECOVERY PENDING. What do you do? In this session we’ll cover the various states that a database can be in, how they get into those states, and learn the proper techniques to bring your data safely back online.

DBA Basics – Intro to Database Maintenance

Performance tuning, index design, etc… these are great skills to have, but there are four basic tasks that every DBA should know how to do backwards and forwards without even thinking about it. They are, in this order: Restore, Backup, Index Maintenance, and Consistency Checking. After attending this session, you will be able to restore a database in a few different ways, take the right backups in order to restore that database, know how and when to maintain the indexes and statistics, and check for database corruption.