Picture of Markus Winand

Those in the IT field who neglect education quickly fall behind.

When did your developers get their last SQL update?

SQL Training in your Office

Markus Winand is fascinated by the endless possibilities of modern SQL. You can feel that when you work with him in person. Sign up for a on-site training with Markus Winand and move your development team to the next level.

Note that basic SQL knowledge is a requirement for all trainings provided Markus Winand. Markus specializees in turning outdated SQL-92 knowledge into solid and modern SQL know-how.

In addition to the two-day trainings from the course list, “SQL-Performance Kick-Start” and “SQL Reloaded”, Markus regularly holds trainings that cover customer specific topics. Let Markus advise you in person. To give you some ideas, you’ll find a few popular topics below.

Training Catalog

These two-day trainings form the standard training program that Markus Winand offers—both can be set up on short notice. Of course Markus can extend these trainings by incorporating additional topics and adjusting the content to your particular situation. Please contact Markus Winand to get started.

SQL-Performance Kick-Start

In this training, 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 training 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

Further Topics

Here are some of the topics Markus Winand has covered during customized trainings in the past. Depending on the specific database you are using, Markus might need some lead-time to prepare the material for your scenario.

Of course you can also ask about other topics.

Data Consistency

In this module developers learn how to protect the consistency of the data—and thus all also maintain the correctness of decisions based on the data.


  • Data types, constraints and domains

  • Deferrable constraints

  • Transactions in the context of write operations

  • Transactions in the context of read operations

  • Transaction isolation and concurrency

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

Row Pattern Matching (only Oracle database)

SQL row pattern matching provides previously unimaginable possibilities when it comes to recognizing patterns in time series. This feature is also useful beyond pattern matching, it is therefore relevant for all users of the Oracle 12c database.


  • The MATCH_RECOGNIZE clause

  • The supported regular expression dialect

  • Performing aggregations

  • Dynamic abort conditions

  • Use cases and examples

Extended Optimizer Statistics

This extension module for the “SQL Performance Kick-Start” training teaches developers to provide the required metadata for the database so that it can make better decisions and yield more rapid execution.


  • Object statistics

  • Cross-column correlation

  • Function-based statistics

  • Reactive optimization methods of databases

The topics vary for each database brand.

Security 1x1

In spite of the General Data Protection Regulation, IT security has again become a focus for managing directors. The security model of SQL can help to improve your data security. Beyond that, most database vendors offer advanced methods for fine-grained access control to further reduce the risk of data leaks.


  • SQL injection

  • Access rights on object

  • Row-level security

The topics vary for each database brand.

Set Up a Training Now

Privacy: The provided data is solely used to make you an offer and subsequent invoicing.


December 2018


January 2019


February 2019

181920 21 22

About Markus Winand

Markus Winand is an independent author, trainer and consultant on all things SQL. His book “SQL Performance Explained” has just been translated into a fifth language. It can be purchased as a print edition, and it’s also available to read for free on his use-the-index-luke.com website. Markus is currently working on his second book centered on the idea that things have changed a lot since SQL-92. It is likewise available free of charge online (modern-sql.com). Markus Winand is regularly speaking at international conferences and user groups.

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter