High-Performance SQL

High-Performance SQL

Training

Get the most out of SQL

SQL has come a long way since SQL:92

  • 1
    MUltiple database support
    The High-Performance SQL training is designed for Oracle, SQL Server, PostgreSQL and MySQL.
  • 2
    PRACTICAL EXAMPLES
    All SQL examples are inspired by real-life scenarios. All code is on GitHub, and you will have exclusive access to the source repository and benefit from future updates.
  • 3
    Present-Day SQL
    SQL has come a long way since SQL:92. This training teaches you many useful features like Window Functions, Lateral Joins, Recursive Common Table Expressions, that will help you write better queries to address complex data access requirements.

What People Are Saying...

Andrei Rosu-Cojocaru

Andrei Roșu-Cojocaru

Software Developer - ABS Laundry Business Solutions

Our company has been delivering an ERP solution for laundries for more than 25 years. Our application uses Oracle, Java, Spring, and JDBC as its backbone.

Most of the performance problems reported by our customers find their root cause in the persistence layer. During his course, Vlad showed us how we should tackle these kinds of issues, breaking up the execution time of a statement into atomic bits and improving the performance for each of them. We found that optimizing the persistence layer is much more than just writing an SQL query as efficiently as possible. The framework allows for a lot of configuration we were not aware of, even in our case, where we are using plain JDBC. There are also some other architectural decisions that might have an amazing impact on the speed, such as caching, batching, or fetching options.

I enjoyed the fact that Vlad successfully managed to deliver custom training tailored to our needs. He had no problem adjusting the content, as he immediately understood our application’s architecture. Although his course contains a lot of information on various DBMSs, such as SQL Server, PostgreSQL, and MySQL (also comparing their performances) and on frameworks such as Hibernate, he focused on the technologies we are currently using and provided a lot of tips and tricks to help us tune our data access layer. The information was delivered at a pace that could be followed by all participants, and he promptly answered all our questions.

The course was delivered online - given the pandemic situation – and we had a very good interaction, with our colleagues being involved in the discussion through periodical Q&A or hands-on exercises.

Vlad offers a repository with an impressive library of integration tests that illustrate each concept presented throughout the course. Given the level of abstraction they provide and the way they were written, using the latest version of Java, taking gain of the latest additions in the JDK, and abiding by the clean code standards, it would not be an exaggeration to say they provide state of the art in this domain. Every developer writing tests should take a look at them to make sure the application is checked for most hidden vulnerabilities.

I highly recommend the High-Performance SQL and Java Persistence Trainings delivered by Vlad for all companies that want to make sure the data management solution in their application is put to proper use!

Daniel Manolescu

Java Developer - Societe Generale European Business Services

As a Java developer, I often find myself interacting with databases and writing SQL queries. After attending Vlad's High-Performance SQL, I found answers to many problems that I faced over the years.

Vlad has a dynamic approach to teaching that motivates and engages everybody in the room. The presentation covered a lot of fascinating topics, and the content was well structured.

Every section had real-life code examples helping solidify the information presented.

This was a great training course that covered a lot of advanced SQL concepts.

Curriculum

The High-Performance SQL training is aimed to level up your team's SQL and database skills, covering the top most used database systems, such as Oracle, SQL Server, PostgreSQL, and MySQL.

Day 1

Introduction

Duration: 1h 45m

  • Beyond SQL:92
  • SQL Parsing
  • SQL Operation Order
  • Execution Plans
  • UPSERT and MERGE

Subqueries

Duration: 45m

  • EXISTS and NOT EXISTS
  • IN and NOT IN
  • ANY and ALL
  • INSERT with subqueries
  • Aggregation with subqueries

Window Functions

Duration: 1h 30m

  • Analytics queries and window frame processing
  • ROW_NUMBER, RANK, and DENSE_RANK
  • FIRST_VALUE, LAST_VALUE, LEAD and LAG
  • CUME_DIST and PERCENT_RANK
  • PERCENTILE_DISC and PERCENTILE_CONT

Joins

Duration: 45m

  • CROSS JOIN
  • INNER and LEFT/RIGHT OUTER JOIN
  • FULL OUTER JOIN
  • NATURAL JOIN
  • LATERAL JOIN and CROSS APPLY

Query pagination

Duration: 45m

  • Best way to paginate result sets
  • TOP-N queries
  • OFFSET pagination
  • Keyset Pagination
  • Beyond SQL pagination

PIVOT

Duration: 30min

  • CASE Expressions
  • PostgreSQL FILTER Expressions
  • PIVOT
  • UNPIVOT

Day 2

JSON processing

Duration: 1h 45m

  • Schemaless and EAV data structures
  • JSON functions, indexing, JSON to SQL transformation

Recursive CTE

Duration: 1h 15m

  • Hierarchic queries
  • Oracle CONNECT BY
  • Recursive CTE and root-based aggregations
  • Application vs database processing

Derived Tables and CTE

Duration: 1h 45m

  • Derived Tables
  • CTE (Common Table Expressions)

Concurrency Control

Duration: 2h 15m

  • ACID, data anomalies, and isolation levels 
  • 2PL and MVCC
  • Optimistic and Pessimistic Locking
  • Batch processing with SKIP LOCKED 

More Testimonials


ABS Laundry Business Solutions

AROBS

Fit to your needs

There is no limit of students that can enroll in this training. If you have multiple teams that need to attend it, the cheaper it gets per person.

The full training spans 2 days, but it can be adapted to a 1-day workshop as well. We can arrange the agenda so that we cover exactly what you need.

All source code is in a GitHub repository which you set up during the training and later use it whenever you need.




Contact me

Let me teach you how to run your data access layer at high speeds!


If you want to book a training session, you should email me at vlad@vladmihalcea.com

and discuss it in more detail.