Course Code: bspkpostgres
Duration: 21 hours
Course Outline:

Introduction to PostgreSQL
Installation and Creating Database
The SQL Language
Advanced Features

The SQL Language
SQL Syntax
Data Definition
Data Manipulation
Queries
Data Types
Functions and Operators
Type Conversion
Indexes
Full Text Search
Concurrency Control
Performance Tips
Client Interfaces
libpq - C Library
Large Objects
ECPG - Embedded SQL in C
The Information Schema

Server Programming
Extending SQL
Triggers
The Rule System
Procedural Languages
PL/pgSQL - SQL Procedural Language
PL/Tcl - Tcl Procedural Language
PL/Perl - Perl Procedural Language
PL/Python - Python Procedural Language
Server Programming Interface

Performance Optimization
Reducing I/O with HOT
Locking & Concurrency
Evaluating the Design of the Database
Optimizing SQL Queries with EXPLAIN
Inspecting the Workload
Benchmarking and Profiling
Optimizing Joins

Performance Tuning:
Using Indexes Efficiently
Query Tuning
Logging in PostgreSQL
Query Plans
Statistics
SQL Best Practices
Indexes
Table Partitioning

Performance Tuning
Operating System Best Practices
Server Parameter Tuning
Extension – pg_stat_statements
Demo and Labs

Internals
Overview of PostgreSQL Internals
System Catalogs
Frontend/Backend Protocol
PostgreSQL Coding Conventions
Native Language Support
Writing A Procedural Language Handler
Writing A Foreign Data Wrapper
Genetic Query Optimizer
Index Access Method Interface Definition
GiST Indexes
GIN Indexes
Database Physical Storage
BKI Backend Interface
How the Planner Uses Statistics