The Typical SQL Experience is 25 Years Behind the Times
In our data-driven world, the ability to process data has become very crucial for every company. Unfortunately, many developers and analysts still use SQL as it was taught 25 years ago—because most courses are still based on SQL-92. This 5-day training is the ideal way to turn outdated SQL-92 knowledge into modern SQL know-how.
The contents of the course is based on the recurring problems I have observed in my training and consulting assignments over the years. It provides proven solutions to common requirements.
SQL-Performance Kick-Start: Searching, joining, ordering, and grouping…because in-depth indexing know-how is crucial.
SQL Reloaded: Type safety, NULL, three valued logic, order of execution—we’ll cover the essential basics that people are often afraid to ask about.
Analysis and Aggregation: We’ll look at window functions, grouping consecutive events, and avoiding self-joins. These are versatile techniques everybody should understand.
Recursion: Advanced algorithms implemented in pure SQL—that’s faster and more correct than most other solutions.
Please find the full contents, the prerequisites, and registration form below.
Language of Instruction
The next training will be held in English. All training material is available in German too. Some training material (“SQL Performance Explained”) is also available in French, Japanese, and Spanish.
As I’m a German native speaker I can also take German questions during the training.
Date and Place
The training takes place in the Hotel am Parkring in Vienna, Austria from September 17 till 21 2018.
Contents
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.
Topics:
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.
Topics:
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.
Topics:
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.
Topics:
The WITH clause (non-recursive)
The WITH RECURSIVE clause
Use cases and examples
Covered Databases
The next training will use the PostgreSQL database as primary database. The training will also cover the following secondary databases: MariaDB, MySQL, SQL Server, and the Oracle database.
Primary database means that I will demo everything using PostgreSQL. I will also demo differences to the secondary databases, but not every single example in all databases.
MySQL 8.0 and MariaDB 10.2 support window functions and the WITH clause. This training is a great update for MySQL/MariaDB users.
All exercises are available for all mentioned databases (if the database supports the required functionality).
Price
The course fee is €2490 (plus 20% VAT, €2988) per participant.
Foreign companies might be entitled for a full VAT refund from Austrian tax authorities. See VAT-Refund Procedure at the website of the Austrian Ministry of Finance for prerequisites and further details.
In the Package
This is what you get for your money:
5 full days (Mon-Fri; 9am–5pm) training with Markus Winand
No more than 8 participants
The venue is the Hotel am Parkring in Vienna, Austria.
The actual venue will be announce no less than 3 weeks before the training.
Catering: Lunch, snacks during the breaks
One hard copy and PDF of “SQL Performance Explained” (choose: English, German, French, Japanese or Spanish)
PDF and wire-bound print of the current draft of my next book covering the other topics of the training (choose: English or German)
Training exercises and solutions (runnable scripts for all covered databases)
Teammate on demand voucher: 2 times 30 minutes remote coaching valid 30 days after the training.
Prerequisites
This training is for developers with some SQL experience.
Bring your own device (with a database installed). Detailed requirements will be shared several weeks before the training.
A VirtualBox appliance with a preconfigured PostgreSQL databases will be made available for download before the training. Client not included—install your preferred client before the training.
Registration
If this training doesn’t fit, file your interest in future trainings here.
Privacy: The provided data is solely used to send you you the required paperwork.
SQL Renaissance Ambassador
As the SQL Renaissance Ambassador, it’s my mission to make developers aware of the evolution of SQL in the 21st century. My book “SQL Performance Explained” has been published in five languages and can be read online free of charge at use-the-index-luke.com. My next book is currently in the works and can already be read online as it’s being written (modern-sql.com). I am available as a trainer, speaker and consultant for all companies and developers interested in SQL. You’ll find more info at winand.at.