I was preparing a post about what can slow down a query, but when I was reading a lot of different stuff online to make sure I am writing truth I encountered several interesting papers, and presentations that I think are worth reading.
First of them is a series of presentations regarding Data Processing on Modern Hardware prepared by Jens Teubner from Technical University Dortmund – actually the same set of slides can be found on the website of TU Dresden but the ones to which I have provided the links below seem to be updated.
Anyway, as the title indicates the course covers topics of Data Processing on Modern Hardware. It starts with introduction to different memory types with a big emphasis on cache, then how different instructions are executed within the CPU, going further to levereging the hardware capabilities with vectorization, next introducing execution on multi core processors, the extreme case of multiprocessing which are computations on GPUs or speeding up by going even lower with programming to the FPGAs.
Part I – Introduction
Part II – Cache Awareness
Part III – Instruction Execution
Part IV – Vectorization
Part V – Multicores
Part VI – Graphics Processors (GPUs)
Part VII – FPGAs for Data Processing
GPU-accelerated Data Management
Another set of links is to a course in Database Systems II from the Tubingen University. This one covers a bit more typical topics, not so much down to a hardware, which are
00 – Introduction
01 – Storage
02 – Indexing
03 – Tree Structured Indexing
04 – Multi-Dimensional Indexing
05 – Hash-Based Indexing
06 – External Sorting
07 – Evaluation of Operators
08 – Cardinality Estimation
09 – Query Optimization
10 – Transaction Management
Of course if there is second part of the course there hast bo be the first one. If you miss some basics in database systems you may have a look at the slides from Database Systems I, also from the Tuebingen University. On the course website you may find multiple examples covering a lot of different topics, from loading different types of data to connecting different data by PostgreSQL’s foreign data wrapper (SQL).
00 – Welcome
01 – Data Models and Data Languages
02 – Types, Declarativity, Data Independence, Persistence
03 – The Relaional Data Model
04 – Normal Forms, Functional Dependencies
05 – The Entity-Relationship Model
06 – The Relational Algebra
07 – Recursive Queries