In this section you can browse various prior presentations at user groups, SQL Saturday sessions, or other events (see the dates and locations). Presentations without dates and locations have yet to be scheduled but are available upon request.
If you are interested in a presentation download, click the button below. If you use any of this material, please be considerate and cite your source.
Do you ever wonder how you can make T-SQL do what you really want? Do you want to know how to make it jump through loops, perform amazing twists and turns, and execute other wondrous performances? In this session you'll learn about various features such as CTE, ROW_NUMBER, and other great features that will enable you to make your T-SQL queries and stored procedures more efficient and give you the results you really want.
Many database developers today do not have a Computer Science degree and may also have begun their career developing software using procedural programming languages (Java, C#, etc.). As a result, they may not have the background needed to conceptualize solutions in terms of sets of data and therefore may not be able to develop efficient set-based queries. In this session, we will review the basics of set theory, relational algebra and how they apply to database development to turn cursors, loops, and other procedural programming practices into efficient set-based operations that make the most use of a relational database engine.
Battle scars are proof of the struggles endured and won. Find out about one particular battle in porting a SQL Server application to Netezza. In this session, we’ll review Big Data options and the differences between them. We’ll specifically see how Netezza and other Massively Parallel Processor (MPP) systems are different from Symmetric Multi-Processor (SMP) systems like SQL Server and witness the lessons learned in the struggle.
At some point we’ve all had to work with XML, and you may have even searched XML documents in a text editor. However, did you know that you can query XML documents within SQL Server? In this session, I’ll show you how you can query XML documents as a data source right along with SQL Server tables and how to optimize your queries for better performance. You’ll learn how to check conditions that determine if the data you need exists and how to deal with incomplete or missing data.
Most people don't like to speak in public and technical folks are certainly no exception. Yet, you've got some ideas for a great presentation but just don't know how to go about putting it all together. On top of that, how do you go about giving the presentation itself? This session will cover how to pull your material together in an organized fashion and present it such that your audience can follow along and get the message you want to relay. We'll also discuss how to deal with issues that cause presenters stress to help you to make the process enjoyable and rewarding for all.
Due to varying definitions of Big Data which confuse data volume and data organization, the common perception is that Big Data requires the use of Hadoop, MongoDB, or another NoSQL database. SQL Server can easily store and manipulate very large volumes of data and perform quite well provided the database is properly set up and tuned. In this session we'll cover some of the definitions and misconceptions of Big Data, look at some Big Data solutions that went horribly wrong and review a case where Big Data was successfully implemented in SQL Server. Finally, we'll take a peek under the covers to see how SQL Server best handles Big Data through proper data models, table designs, performance tuning, and T-SQL techniques.
The use of design patterns has been quite popular in object-oriented development to help identify best practices for various situations. Unfortunately, this practice has not really reached the world of relational database architecture where they are just as applicable. In this session, we'll discuss some techniques and best practices that help make database design more effective and efficient not only in operation but also in design and administration. With the use of some example scenarios, you'll walk away with a better understanding of design patterns that you can apply right away!
Although they have been around since SQL Server 2005, Common Table Expressions (CTEs) have been a complete mystery to many. As a result, there are many misunderstood myths and assumptions surrounding them. This session will explore deep into CTEs, what they are, what they are not, and how they work. We'll look at situations where they can really help improve not only code clarity but also performance especially when compared side-by-side to usual methods. We'll also identify situations where CTEs can be used incorrectly causing hidden performance problems.
Because SQL Server is designed to efficiently operate with set-based queries, it does not perform as well with loops and cursors. However there are situations where you really need some type of a loop. Tally tables give you the best of both worlds by allowing you to effectively "loop" through records in a set-based manner. We'll explore what tally tables are, how they work, and more importantly review some of the many ways you can use them to turn your loops and cursors into efficient set-based operations.
Determining how to efficient design database structures for a given application has always relied on the same old answer: "It depends!" So, how do you determine what level of normalization your data requires? This session will review the principles of data normalization, show the impact that normalization can have on performance and data integrity, and just as importantly, show you when it's OK to break the rules and denormalize. We will cover some case situations where it's better not to be normal!
You've just landed a new job or a new task. You are charged to maintain and improve a mission-critical database that has been around for quite some time and performs poorly. There is no one available to provide guidance and there is little to no documentation. Over time tables have grown crazy and indexes have been neglected. You discover that stored procedures were written with procedural methods and/or (gasp!) dynamic SQL.
How do you get the database under control without impacting production? This session will focus on techniques that allow you to explore the database, understand what is needed and how to make improvements for performance without negatively impacting unknown processes. We will cover index pruning, finding poorly written T-SQL, and other techniques to bring control to your neglected database.