Vectorized Processing in Analytical Query Engines


Traditional query processing algorithms are based on "iterator" or "tuple-at-a-time" model where a single tuple is pushed up through the query plan tree from one operator to another. Each operator typically has a next() method which outputs a tuple or record and the latter is then consumed as an input record by the caller operator... Continue Reading →

Advertisements

Why Analytic Workloads are faster on Columnar Databases?


In this post I will briefly summarize why analytic (OLAP) workloads perform better on columnar (aka column-oriented) databases as opposed to traditional row-based (aka row-oriented) databases. Introduction Storage Organization Vectorized Query Execution CPU Cache Friendly Late Materialization Compression Introduction Analytic workloads comprise of operations like scans, joins, aggregations etc. These operations are concerned with data... Continue Reading →

Clustered Indexes v/s Non-Clustered Indexes


In this post, I would like to give a small overview of Clustered and Non-Clustered Indexes. DISCLAIMER: I am an Oracle employee, and the views/opinions expressed in the below article are purely my own and do not express the views of my employer. Let's start with similarities: Similarities: Both Clustered and Non-Clustered indexes are types... Continue Reading →

Blog at WordPress.com.

Up ↑

%d bloggers like this: