High-Performance SQL
Training
Get the most out of SQL
SQL has come a long way since SQL:92
- 1MUltiple database support
The High-Performance SQL training is designed for Oracle, SQL Server, PostgreSQL and MySQL. - 2PRACTICAL 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. - 3Present-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 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
During the past two weeks, I attended the "High-Performance Java Persistence and SQL" training with @vlad_mihalcea. I had no idea the data access layer offers so many tuning possibilities. I can't wait to put into practice everything that I have learned!🤓
— Andrei RoÈ™u-Cojocaru (@arosucojocaru) July 16, 2021
AROBS
It is amazing what you can do with advanced #SQL. Thanks @vlad_mihalcea for the Master Class.
— AROBS (@AROBSSoftware) December 17, 2019
If #AROBS looks like a place for you, puzzle in: https://t.co/NSk5W8UXoG#connecttoyourpassions pic.twitter.com/2uBuPcx7PF
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.