Picture of Markus Winand

Every development team needs an SQL expert.

With this training, a member of your team can become this SQL expert.

5-Day Intensive Training for Emerging Experts

After this 5-day training, the participants clearly stand out from the field: they master modern SQL, know design principles for scalable databases and have gained practical experience through numerous exercises. During these five days, Markus Winand conveys the extensive SQL experience that he’s accumulated during his eight years as a developer with an international bank and a further eight years as an independent SQL trainer and consultant for companies of all sizes.

This training is held on demand in Vienna, Austria for 6–8 participants. Let us know if you’re interested now, and we’ll get back to you once there are enough interested people for a class to take place.


SQL-Performance Kick-Start

In this module, developers learn how to resolve the most common cause of SQL performance issues: the index/query mismatch. After this training, developers can do more than just solve performance problems—they can proactively avoid them during their everyday work.


  • How does an index work?

  • Multi-column, partial and function-based indexes

  • Execution plans

  • Join algorithms

  • Building and using data clusters

  • Indexing sort and grouping operations

  • Optimizing top-n and pagination queries

  • Drawbacks of indexes

SQL Reloaded

This module clarifies the most common uncertainties developers have when working with SQL, and it teaches them to find the right solution more quickly. This training also introduces some less well-known design principles that have nevertheless proven themselves over the past decade.


  • Syntactic components: keywords, names, values

  • Type safety and the predefined data types

  • NULL and the three-valued logic of SQL

  • Queries: structure and logical order of execution

  • Joins

  • The modern interpretation of the relational model

  • Storing versioned (historic) data in SQL databases

  • Immutable facts as a design principle

Analysis and Aggregation

Online analytical processing (OLAP) can simplify and accelerate many applications—also those processing transactions. Using these features not only reduces development time, it also improves the performance of the application.


  • Avoiding self-joins

  • Multiple groupings

  • Window functions

  • Ranking

  • Grouping consecutive events

Recursive Queries

Modern SQL can process hierarchies and graphs directly in the database. This often means that you can avoid the need to cross a technology border, thus reducing the complexity and error-proneness of the application.


  • The WITH clause (non-recursive)

  • The WITH RECURSIVE clause

  • Use cases and examples

Let us know today if you might be interested (no obligation)


This training is for developers with some SQL experience. Bring your own device (with a database installed) for the sessions.

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter