SQL Masterclass

Database

This workshop enables developers to use SQL as a first-­class language in their applications. Due to the historic divide between database and programming skills the majority of SQL written by developers suffers from at least one of the following problems:

  • It is overly complex and could be greatly simplified via refactoring
  • It has poor performance, due to insufficient knowledge of DB internals
  • It does not leverage modern and/or vendor specific SQL functions

All of these issues can be fixed by encouraging developers to treat SQL with as much respect as their normal code, educating them about performance implications and informing them about new features available in commercial and open source databases. This masterclass achieves these three goals.

Prerequisites and Logistics

This is a single day workshop delivered using the PostgreSQL database. Participants need to bring their own machines and perform pre-course setup. Setup instructions will be available. Participants should be experienced at writing SQL queries.

Outline Day 1

  • SQL Functionality Introduction to the course databases and revision of core SQL constructs
  • Advanced constructs, such as row value expressions and hierarchical SQL A
  • Applying window functions for complex calculations within the database
  • Modern use of DML (e.g. using MERGE instead of INSERT and UPDATE)
  • Using esoteric data types (json, hstore, arrays, composite types, ranges etc…)

Outline Day 2 – SQL Performance

  • The inner workings of an index
  • The cost-based optimizer
  • Why constraints are so important for performance
  • Writing performant predicates
  • Faster DML
  • Antipatterns, myths, and best practices

Tid

09:00 - 17:00

Emner

- Introduction to the course databases and revision of core SQL constructs

- Techniques for writing SQL to maximise performance

- Advanced constructs, such as row value expressions and hierarchical SQL

- Applying window functions for complex calculations within the database

- Modern use of DML (e.g. using MERGE instead of INSERT and UPDATE)

- Using esoteric data types ( json, hstore, arrays, composite types, ranges etc…)

Tilleggsinfo

The Course and all Material is in English